struts中的验证框架问题

来源:互联网 发布:hdtv直播软件 编辑:程序博客网 时间:2024/05/16 10:25

           首先,用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>   

 

 

原创粉丝点击