目前自己正在学习框架,发现写博客确实是一个非常好的方法,所以决定利用博客,把自己学到的知识记录下来,也方便自己学习,同时也能锻炼自己的写作能力,此文仅供参考。
有两种方法,方法一:
想对简单,只需在xml文件配置即可。但是xml文件名格式必须是:(对应的action-validation.xml) 放置位置,和对应的action在同样的位置下。代码如下:
<?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="user.firstname">
<field-validator type="requiredstring">
<message>required first name</message>
</field-validator>
</field>
<field name="user.age">
<field-validator type="required">
<message>required age</message>
</field-validator>
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>age should be between ${min} and ${max}</message>
</field-validator>
</field>
</validators>
注: user是对应action中对象的调用,代码如下
public class SaveUserAction extends ActionSupport
{
private User user;
public User getUser()
{
return user;
}
public void setUser(User user)
{
this.user = user;
}
方法2: 相对方法1来说,相对较难,需要配置两个xml文件
校验方式,是的struts2提供的visitor方法的校验,代码如下,在saveUserAction-validation.xml配置如下
注:appendPrefix和下面的message信息是同时出现的,如果 设置为true 那么提示的附加信息会加上前缀,即message中的信息。
context 上下文,即有具体的校验文件来访问属性,即需要制定另外一个xml文件。另一个xml文件在对应要校验信息对应的bean下,名字是三部分组成,小写user对应param里面的user,如图文件代码如下
<?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="firstname">
<field-validator type="requiredstring">
<message>required first name</message>
</field-validator>
</field>
<field name="age">
<field-validator type="required">
<message>required age</message>
</field-validator>
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>age should be between ${min} and ${max}</message>
</field-validator>
</field>
</validators>
结果如下:
注:user's是输出的文件头信息,另外在allicationContext.xml中配置saveUserAction中scope为prototype,即防止在提交是,错误重复出现。每当使用action,会重新new,即在spring中配置的action中scope都用prototype.
注:这也算是自己的学习笔记吧!