The purpose of this projects is fairly simple, to provide access to files and attributes thereof. This includes access to the contents of the file. I would like to elaborate a little on this and explain some of it's workings, I assume that whomever reads this has some knowledge of the JSP tagsupport as described in the J2EE documentation.
There's many ways to keep files and many ways to build a website, but based on my 13+ years of working with computers I have come to the conclusion that files are best grouped together in directories and all of these, directories and files alike, descriptively named. In website design it has long been in use to create a file with a specified name to act as a default view for a directory and there's a few more of these general properties that may come in handy when properly used. Based on that knowledge, and my desire to create some programming from scratch with which to be able to show a possible employer of what I'm capable, I desided to create a library of tags to read files. All this in such a manner that I could easily create dynamic webpages and not having to bother with a database, which I'm trying to prove overkill for most of what is done in web-applications.
I started with the basics, opening a file and reading it's properties. Easy enough, anyone could do it with only the most basic knowledge of Java and J2EE. So I've created a tag to open a file and a set of tags to access it's properties. I think I've managed to cover all the interresting parts of the File javadocs and added to these a few webserver related properties.
Now I wanted to go one step further to make the TagLib really usefull and I created a set of tags to access portions of a text-files' content. Thus I am now capable of accessing the HTML-content of any HTML formatted text-file. All I now have to do to create my dynamic content is open a file, check if it's HTML and, if so, access it's properties such as the title, description, keywords and so on.
Here's a UML diagram chopped into three images and with a layout more or less adepted to web-viewing taking into account the limited width of a computerscreen. First of these images is a set of FileProviders. These are the tags that open files for reading attributes and content. All tags, except for FileTag itsself, must be enclosed by, at least, one FileTag instance or they will generate a NullPointerException.
The following are all FileAttributes with a String representation such as name, content and so on:
And the last one in this series contains all boolean attributes that will only display their body depending on the outcome of a boolean value:
Last but not least I have provided a link to a reasonably up to date Javadocs: