首先,用struts标签构建一个页面,如register.jsp,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<s:form action="registerAction" method="post">
<s:textfield name="username" label="username" />
<s:password name="password" label="password" />
<s:textfield name="age" label="age" />
<s:submit value="submit" />
</s:form>
</body>
</html>
然后,写对应的Action,如放在包action中的话,则代码如下:
package action;
import com.opensymphony.xwork2.ActionSupport;
public class RegisterAction extends ActionSupport {
private String username;
private String password;
private int age;
public String excute()
{
//System.out.println("username = "+username+",password = " + password + ",age = " + age);
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;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
之后,在这个action对应的包里面写入一个xml,即验证框架规则。
在对应的
Action
的包下
(
必须跟该
Action
在同一个目录
)
创建验证框架规则
(.xml
文件
)
该xml文件的命名必须遵守如下规则:
1) 该文件必须跟该对应的Action在同一个目录
2) Action的名字---对应Action中的方法名(execute方法除外)-validation.xml
如:
如图所示该文件名由三部分组成:
第一部分:Action的类名
第二部分:Action中的方法名
第三部分:validation.xml(固定)
写一个RegisterAction-validation.xml,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-
1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>username is required!</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">100</param>
<message>Age must between ${min} and ${max}</message>
</field-validator>
</field>
</validators>
最后千万别忘了在struts.xml文件中一定要配置一个结果为input的转向。
否则会出现如下错误:
No result defined for action action.RegisterAction and result input
代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.il8n.encoding" value="GBK" />
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<action name="index">
<result type="redirect">/default.jsp</result>
</action>
<action name="registerAction" class="action.RegisterAction">
<result name="success">/login.jsp</result>
<result name="input">/register.jsp</result>
</action>
</package>
</struts>