struts2 validator验证一些注意事项

struts2 validator验证一些注意事项
2007-12-20 11:13:57.0 作者:justin 来源:本站 [收藏此文章]
struts2可以像struts1一样,在Action中使用validator()方法进行验证,也可以使用校验规则文件进行验证.
本文主要介绍的是使用校验规则文件方式进行的验证.

1.件命名方式:ActionClassName-ActionAliasName-validation.xml
 其中,ActionClassName表示的是这个Action的名称.ActionAliasName表示的是多处理逻辑中的别名.在struts2中一个Action文件可以实现多个处理逻辑.也就是在struts.xml的配置文件中配置Action标签,其它的Class可以共用一个Action类.所以这个ActionAliasName表示的就是这个Struts标签的Name属性值.
问题来了,struts.xml中的标签是可以使用通配符的,使用通配符怎么办?
如:
<action name="add_*" method="add{1}" class="struts.{1}Action">
<param name="path">WEB-INF/classes/user.xml</param>
<result name="success" type="redirect-action">
User_List
</result>
<result name="input">/user/addUser.jsp</result>
</action>

在这种情况下就要看提交文件addUser.jsp中add_后面的是什么,我的应用中是 add_User.
ok,解决了,你的校验规则文件名就是 UserAction-add_User-validation.xml.
还要记住这个文件要与UserAction.class放在一个包下面才行哦.

2.使用validator="true"的方式生成javascript的客户端验证.

    <s:form action="add_User.action" validate="true">
     <s:textfield name="user.loginName" label="登陆名"/>
     <s:textfield name="user.password" label="密码"/>
      <s:textfield name="user.name" label="姓名"/>
      <s:textfield name="user.tag" label="标志"/>
      <s:submit value="提交"/><s:reset value="重置"/>
   </s:form>

按理说,这样的样子应该是可以自动生成客户端验证的.但是我的怎么也成不了..
注意, action="add_User.action" 这一名,我发现官方是没有后面的.action的.
问题就是这样.如果你不生成客户端的验证.加上.action的后辍是可以提交到服务器的.
但是却无法生成客户端的验证.所以这点需要注意,最好养成习惯,如果使用了s:form的标签,
acton的属性值就不要接.action.免得以后还会不错误出现.

3.action属性中使用模型.
我在Action中有一个属性-User,这个User是一个类.类中有loginName,name,password,tag四个属性.
在表单中,如上所示,name属性都是以user.为前辍.这样Action中就能够正常接收了.
但是验证时怎么办呢?

以下的验证文件:
<validators>
<field name="user.loginName">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>登陆名称不能为空</message>
</field-validator>
</field>

<field name="user.password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>密码不能为空</message>
</field-validator>
</field>

<field name="user.name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>姓名不能为空</message>
</field-validator>
</field>
 
<field name="user.tag">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>标示不能为空</message>
</field-validator>
</field>
 

</validators>

对,在<filed>标签中name属性值也需要加上一个user.前辍.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值