Tutorials :
: A very simple JSP-architecture Part 2
The view
Now for the view. We'll have to make a few changes here also to the simple view from my last
article:
- We need two input fields for customer name and address.
- We need new buttons for update, delete and create.
- Since we now have four functions, we'll have to insert the command name in the hidden form
field when the user clicks one of the buttons. This can be done by some simple JavaScript, for example
like this for the Search button:
<input type=submit value="Search" onclick="myform.command.value='getdata'">
If you do not want to use JavaScript, you can let the controller get the value of the Submit button,
and use it to determine the command (remember to give all buttons the same name, as shown below).
The HTML in the view therefore looks like this:
<h3>CUSTOMER SEARCH</h3>
<b><%=cString(session.getValue("customerinfo.message"))%></b>
<form name=myform action="ctrlcustomerinfo.jsp" method=post>
Please enter the customer ID:
<input type=text name=id value="<%=customer.getId()%>">
<input type=submit
name=sub
value="Search"
onclick="myform.command.value='getdata'">
<input type=submit
name=sub
value="Update"
onclick="myform.command.value='update'">
<input type=submit
name=sub
value="Delete"
onclick="myform.command.value='delete'">
<input type=submit
name=sub
value="Create"
onclick="myform.command.value='create'">
<input type=hidden
name=command
value="">
<br>
Name:
<input
type=text
name=name
value="
<%=customer.getName()%>"><br>
Address:
<input
type=text
name=address
value="<%=customer.getAddress()%>"><br>
</form>
The page now looks like this:
The source for the complete view is here: customerinfo.jsp.
The Customer bean
In the Customer bean four new methods are added: isDataFound (see above), updateCustomer,
deleteCustomer and createCustomer. You may view the source for the
Customer bean and a helper class named Person, but note, that for simplicity no real database is used. Instead it's faked by keeping the
customers (instances of class Person) in a Java Hashtable. This will work in our example, since the
bean has scope "session", and data in the bean therefore is available for every request.
All files are also available in a zip-file.
Things like you might consider to add
- When you update or create a customer you should probably check if the name and address has been
filled in. This can be done with JavaScript in the browser, but to be safe you should also check in
the controller--the user might have disabled JavaScript in his/her browser.
- You would also want to check if the ID has been filled in (for all functions).
Conclusion
Even if the MVC-architecture presented is very simple, it will suffice for prototypes and a lot of
smaller applications. The major advantage is rapid development, and since tasks (control, business
logic, and presentation) are clearly separated, it's rather simple to expand and enhance the
application.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|