2007-06-29
在struts2.0中对指定方法进行validation验证
关键字: struts2 validation 指定方法最近公司项目使用struts2.0, 在用到struts2.0中的validation框架时,当为一个Action指定Actionname-validation.xml验证规则后,validation interceptor会为该Action中的每个方法都执行validation,这样很烦。
(1)有一种解决方法是为其余不需要进行验证的方法加上annotation,即在方法前加上@SkipValidation。
(2)另一种方法是今天在mailing list中看到的,为Action中的指定方法指定一个验证规则,命名为Actionname-alias-validation.xml,在struts2.0自带的mailreader例子中有使用,可以参考。
如mailreader的例子中,struts中的配置如下:
xml 代码
- <package name="subscription" namespace="/" extends="mailreader-support">
- <global-results>
- <result name="input">/Subscription.jspresult>
- <result type="redirect-action">Registration_inputresult>
- <global-results>
- <action name="Subscription_save" method="save" class="mailreader2.Subscription">
- <interceptor-ref name="user-submit" />
- <action>
- <action name="Subscription_*" method="{1}" class="mailreader2.Subscription" />
- <package>
然后在mailreader2包下有一个Subscription类,及一个Subscription-Subscription_save-validation.xml文件,还有一个Subscription-validation.xml文件。
注意:Subscription_save是在struts 中定义的action的name,在struts中还要指定Subscription_save所对应的方法。
(3)还有一种方法,也是我认为最简单的方法就是如下配置:
xml 代码
- <package name="subscription" namespace="/" extends="mailreader-support">
- <global-results>
- <result name="input">/Subscription.jspresult>
- <result type="redirect-action">Registration_inputresult>
- <global-results>
- <action name="Subscription" class="mailreader2.Subscription">
- <interceptor-ref name="defaultStack">
- <param name="validation.excludeMethods">*param>
- <param name="validation.includeMethods">需要验证的方法名称,以逗号分隔param>
- interceptor-ref>
- <action>
- <package>
评论
kevin002
2007-08-23
Puras 写道
kevin002 写道
你好,有一个问题我想请教一下,
<action name="list" class="DetailAction">
<result>detail.jsp</result>
</action>
<action name="add" class="DetailAction" method="add">
<result name="input">photo_detail?pid=${pid}</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示
<action name="add" class="DetailAction" method="add">
<result name="input">detail.jsp</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?
<action name="list" class="DetailAction">
<result>detail.jsp</result>
</action>
<action name="add" class="DetailAction" method="add">
<result name="input">photo_detail?pid=${pid}</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示
<action name="add" class="DetailAction" method="add">
<result name="input">detail.jsp</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?
我也遇到过这种问题
是加了一个<interceptor-ref name="prepare" />拦截器
不知道还有没有更好的解决办法.
<result name="input">detail?pid=${pid}</result>
这句代码里面的pid值得不到了,不知道是怎么回事了.
Puras
2007-08-23
kevin002 写道
你好,有一个问题我想请教一下,
<action name="list" class="DetailAction">
<result>detail.jsp</result>
</action>
<action name="add" class="DetailAction" method="add">
<result name="input">photo_detail?pid=${pid}</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示
<action name="add" class="DetailAction" method="add">
<result name="input">detail.jsp</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?
<action name="list" class="DetailAction">
<result>detail.jsp</result>
</action>
<action name="add" class="DetailAction" method="add">
<result name="input">photo_detail?pid=${pid}</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示
<action name="add" class="DetailAction" method="add">
<result name="input">detail.jsp</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?
我也遇到过这种问题
是加了一个<interceptor-ref name="prepare" />拦截器
不知道还有没有更好的解决办法.
kevin002
2007-08-23
不好意思,上面写的有些问题,下面的才是.
你好,有一个问题我想请教一下,
<action name="detail" class="DetailAction">
<result>detail.jsp</result>
</action>
<action name="add" class="DetailAction" method="add">
<result name="input">detail?pid=${pid}</result>
<result type="redirect-action">detail?pid=${pid}</result>
</action>
我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示
<action name="add" class="DetailAction" method="add">
<result name="input">detail.jsp</result>
<result type="redirect-action">detail?pid=${pid}</result>
</action>
如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?
你好,有一个问题我想请教一下,
<action name="detail" class="DetailAction">
<result>detail.jsp</result>
</action>
<action name="add" class="DetailAction" method="add">
<result name="input">detail?pid=${pid}</result>
<result type="redirect-action">detail?pid=${pid}</result>
</action>
我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示
<action name="add" class="DetailAction" method="add">
<result name="input">detail.jsp</result>
<result type="redirect-action">detail?pid=${pid}</result>
</action>
如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?
kevin002
2007-08-23
你好,有一个问题我想请教一下,
<action name="list" class="DetailAction">
<result>detail.jsp</result>
</action>
<action name="add" class="DetailAction" method="add">
<result name="input">photo_detail?pid=${pid}</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示
<action name="add" class="DetailAction" method="add">
<result name="input">detail.jsp</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?
<action name="list" class="DetailAction">
<result>detail.jsp</result>
</action>
<action name="add" class="DetailAction" method="add">
<result name="input">photo_detail?pid=${pid}</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
我定义了一个DetailAction-add-validation.xml文件来对输入的评论进行验证.如果验证失败返回这个页面,但是什么错误提示也不会显示
<action name="add" class="DetailAction" method="add">
<result name="input">detail.jsp</result>
<result type="redirect-action">photo_detail?pid=${pid}</result>
</action>
如果这样写的话,错误提示是可以显示的,但是文章内容就不会显示出来了,只有一个评论框,有什么好的办法没有呢?
hesy_007
2007-08-01
woshiwuji 写道
你好!
有一种问题向你请教一下,
如果使用通配符的配置,
只有一个<result name='input'>/inputpage.jsp</result>
返回结果。
如果不同的action方法想返回不同的页面,是不是就不能能做了呢?
有一种问题向你请教一下,
如果使用通配符的配置,
只有一个<result name='input'>/inputpage.jsp</result>
返回结果。
如果不同的action方法想返回不同的页面,是不是就不能能做了呢?
你可以采用Wildcard Mappings的方式
例:
<action name="/edit*" class="org.apache.struts.webapp.example.Edit{1}Action">
<result name="failure" path="/mainMenu.jsp"/>
<result name="input" path="/{1}.jsp"/>
</action>
woshiwuji
2007-07-28
你好!
有一种问题向你请教一下,
如果使用通配符的配置,
只有一个<result name='input'>/inputpage.jsp</result>
返回结果。
如果不同的action方法想返回不同的页面,是不是就不能能做了呢?
有一种问题向你请教一下,
如果使用通配符的配置,
只有一个<result name='input'>/inputpage.jsp</result>
返回结果。
如果不同的action方法想返回不同的页面,是不是就不能能做了呢?
- 浏览: 32081 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
验证框架中需要解决的问题
就是放xx
-- by javaEye_good -
WEBFX XTREE学习笔记
请问一下,在XTree下怎么把默认的根节点给隐藏起来,只显示它下面的所有子节点树 ...
-- by jackzhangyunjie -
struts2中select标签的使 ...
你好,我怎么能把标签中的属性传给ACTION呢
-- by zfx123 -
在eclipse中使用maven
没看明白 ,具体是改哪里啊?
-- by lu_pp -
STRUTS2中的日期处理
mengfanpp 写道IE 下正常,Firefox 下不正常, Struts ...
-- by hongmu






评论排行榜