Use of {0} is required and Accessing resource bundles programmatically in Struts
By: Manoj Kumar
Between messages “First Name is Required†and “Last Name is Requiredâ€, only the field name changes. We can reuse the message as {0} is required. {0} is replaced with the display name for the field at runtime.a. Add the following to the MessageResources.properties.
error.required={0} is Required
b. Remove the following error messages from MessageResources.properties
error.cust.firstname.empty=First Name is
Required
error.cust.lastname.empty=Last Name is
Required
c. Change the validate() method in CustomerForm to use the following type of logic for validating each of first name and last name.
MessageResources msgRes = (MessageResources)
request.getAttribute(Globals.MESSAGES_KEY);
if (firstName == null ||
firstName.trim().equals(""))
{
String firstName =
msgRes.getMessage("prompt.customer.firstname");
String[] rplcmntValueArr = { firstName };
ActionError err = new
ActionError("error.required",rplcmntValueArr);
errors.add("firstName", err);
}
d. Add similar logic for lastName validation also.
NOTE: An easier way to achieve the same result is as follows:
if (firstName == null ||
firstName.trim().equals(""))
{
String[] rplcmntValueArr = { “First Nameâ€
};
ActionError err = new
ActionError("error.required",rplcmntValueArr);
errors.add("firstName", err);
}
But with this approach, the display value of the field i.e. “First Name†is hardcoded in the ActionForm code. That is not good. We have the MessageResource.properties to externalize the display names for the field anyway. We can reuse it by accessing the MessageResources programmatically.
Archived Comments
Comment on this tutorial
- Data Science
- Android
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Related Tutorials
Configuring JDBC DataSources in Struts
When is the best time to validate input in Struts
Simple example of using the requiredif Validator rule in Struts
How to prepopulate a form in Struts
Using JavaScript to submit a form in Struts
FAQ: Why are my checkboxes not being set from ON to OFF?
FAQ: Why was reload removed from Struts (since 1.1)?
What is a Plug-in and how to use Java plug-ins with Struts?
Origin and Architecture of Struts
Handling multiple buttons in HTML Form in Struts