In this example we will see how to highlight error fields. This is done by creating a seperate style to apply when an error has occred. This style value is set to the errorStyleClass attribute of the corresponding Struts html tag. In our example the login.jsp page contains the following code.
01.
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
02.
<
html
>
03.
<
head
>
04.
<
title
>
05.
Highlight Error Fields
06.
</
title
>
07.
<
link
href
=
"style.css"
rel
=
"stylesheet"
type
=
"text/css"
/>
08.
</
head
>
09.
<
body
>
10.
<
html:form
action
=
"login"
>
11.
<
table
>
12.
<
tr
>
13.
<
td
>
14.
User Name
15.
</
td
>
16.
<
td
>
17.
<
html:text
property
=
"userName"
errorStyleClass
=
"error"
18.
errorKey
=
"org.apache.struts.action.ERROR"
/>
19.
</
td
>
20.
<
td
>
21.
<
html:errors
property
=
"userName"
/>
22.
</
td
>
23.
</
tr
>
24.
<
tr
>
25.
<
td
>
26.
Password
27.
</
td
>
28.
<
td
>
29.
<
html:password
property
=
"password"
errorStyleClass
=
"error"
30.
errorKey
=
"org.apache.struts.action.ERROR"
/>
31.
</
td
>
32.
<
td
>
33.
<
html:errors
property
=
"password"
/>
34.
</
td
>
35.
</
tr
>
36.
<
tr
>
37.
<
td
>
38.
<
html:submit
value
=
"Login"
/>
39.
</
td
>
40.
</
tr
>
41.
</
table
>
42.
</
html:form
>
43.
</
body
>
44.
</
html
>
The style.css file has a style class "error", which sets the background to light blue color.
1.
.error {
2.
background-color
:
#b9ecfd
;
3.
}
LoginForm class extends org.apache.struts.validator.ValidatorForm. All the validations are done inside the validate method.
01.
public
ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
02.
03.
ActionErrors errors =
new
ActionErrors();
04.
if
(getUserName() ==
null
|| getUserName().length() <
1
) {
05.
errors.add(
"userName"
,
new
ActionMessage(
"error.userName.required"
));
06.
}
07.
if
(getPassword() ==
null
|| getPassword().length() <
1
) {
08.
errors.add(
"password"
,
new
ActionMessage(
"error.password.required"
));
09.
}
else
if
(getPassword().length() <
6
) {
10.
errors.add(
"password"
,
new
ActionMessage(
"error.password.minlength"
));
11.
}
12.
return
errors;
13.
14.
}
The corresponding error messages are configured in the ApplicationResouce.properties file.
1.
error.userName.required = User Name is required.
2.
error.password.required = Password is required.
3.
error.password.minlength = Password can not be
less
than 6 characters.
Run the application. The login.jsp page will be displayed. Click the login button without entering the User Name and the Passowrd. The following error messages will be displayed to the user.
Enter only the user name and click the Login button, the following error message will be displayed.
Enter a User Name and a Password less than six characters and click the Login button, the following error message will be displayed.
No comments:
Post a Comment