现在的位置: 首页 > 综合 > 正文

struts2 validation 校验

2017年04月14日 ⁄ 综合 ⁄ 共 1683字 ⁄ 字号 评论关闭

做struts2校验的测试实验的时候,出了点小bug,直接贴出注意点:

1.<ActionClassName>-validation.xml必须要在Action的类路径下面,直接放入到classpath下不可以

2.validation xml的头文件格式必须写,而且还要写正确,第一次直接copy的references,注释了头文件,结果死活不对,郁闷死了,这句话必须写在校验文件里面:

<!DOCTYPE validators PUBLIC "-//OpenSymphonyGroup//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

校验步骤:

第一步:添加一个校验文件,HelloAction-validation.xml

<!DOCTYPE validators PUBLIC "-//OpenSymphonyGroup//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
	<field name="user.name">
		<field-validator type="requiredstring">
			<message>You must enter a name</message>
		</field-validator>
	</field>
	<field name="user.age">
		<field-validator type="int">
			<param name="min">13</param>
			<param name="max">19</param>
			<message>Only people ages 13 to 19 may take this quiz</message>
		</field-validator>
	</field>
</validators>

第二步:Action肯定少不了了

package com.struts;

import com.model.User;
import com.opensymphony.xwork2.ActionSupport;
import com.zizhu.P;

public class HelloAction extends ActionSupport {
	
	private User user = null;
	
	public String execute(){
		P.println(user);
		return SUCCESS;
	}
	
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
}

第三步:输入页面也在所难免:

<s:form action="hello">
    	<s:textfield label="姓名" name="user.name"></s:textfield>
    	<s:textfield label="年龄" name="user.age"></s:textfield>
		<s:submit></s:submit>
    </s:form>

第四步:配置struts.xml,此处需要注意,struts中必须配置input返回视图,否则会报错;

官方的解释是这样的:If you don't have this, you'll get a: "No result defined for action xxx.xxx.tutorial.HellowWorld and result input" error

<action name="hello" class="com.struts.HelloAction">
			<result>/index.jsp</result>
			<result name="input">/hello_input.jsp</result>
		</action>

详细了解,可到这里逛逛:http://blog.csdn.net/jadyer/article/details/6176122#comments

抱歉!评论已关闭.