In this example we will see how we
can perform validations using XML validation file. The naming convention of the
XML validation file should be ActionClass-Validation.xml. Here our Action
Class name is "Login.java" and the XML
validation file name is "Login-Validation.xml".
The
Login-Validation.xml file contains the following code.
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 2//EN"
<validators>
<field name="userName">
<field-validator type="requiredstring">
<message>User Name is
required.</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message key="password.required" />
</field-validator>
</field>
</validators>
The field element
contains the name of the form property that needs to be validated. The
filed-validator element inside the field element contains the type of
validation that needs to be performed.
Here you can either
specify the error message directly using the message element or you can use the
properties file to define all the errror messages and use the key attribute to
specify the error key.
Note the properties
file should also have the same name as the Action class.
The Login Action class contains the following code.
public class Login extends ActionSupport {
private String
userName;
private String
password;
public Login() {
}
public String
execute() {
return SUCCESS;
}
public String
getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String
getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
The login.jsp page contains the following code.
<%@page contentType="text/html"
pageEncoding="UTF-8"%>
<%@taglib
uri="/struts-tags" prefix="s" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login Page</title>
<s:head />
</head>
<body>
<s:form action="LoginAction">
<s:textfield name="userName" label="User Name" />
<s:password name="password" label="Password" />
<s:submit value="Login" />
</s:form>
</body>
</html>
The <s:head /> tag is used to
include the required css and js file for the selected theme. By default thexhtml theme is used.
Execute the example
and click the Login button without entering the user name and password the
following page will be displayed.
Enter a user name
and password and click the Login button the following success page will be
displayed.

No comments:
Post a Comment