page:
<@s.submit value="保存为草稿" method="saveDraftOrder" cssClass="btn_w65px"/>
<@s.submit value="提交" method="saveFormalOrder" cssClass="btn_w65px"/>
xml:
validation-name:
ProductOrderAction-saveDraftOrder-validation.xml
ProductOrderAction-saveFormalOrder-validation.xml
ClassName:
ProductOrderAction.java
我要验证 ProductOrderAction 的 saveDraftOrder && saveFormalOrder 方法
配置文件不起作用。
自己search 了一下 官网上这样说 貌似对我这个没什么用。。。
:oops: 。请各位赐教下。。感激万分!
怎么没人理。。。。
[b]问题补充:[/b]
配置没有问题,action 里的方法可以运行
只是 验证规则没有执行
我估计是提交方式 的问题
ps:我是用相同的action name 但是method 不同
说句题外话,你的配置里面错误还挺多。
再帮你改一下
[code="java"]<!-- 保存正式订单信息 -->
ProductOrderAction-saveOrder-validation.xml
ProductOrderAction-updateDraftOrderInfo-validation.xml
<@s.submit value="保存为草稿" action="saveOrder" cssClass="btn_w65px"/>
<@s.submit value="提交" action="updateDraftOrderInfo" cssClass="btn_w65px"/>[/code]
[code="java"]
page:
<@s.submit value="保存为草稿" method="saveDraftOrder" cssClass="btn_w65px"/>
<@s.submit value="提交" method="saveFormalOrder" cssClass="btn_w65px"/>
xml:
[/code]
仔细看一下你的action是不是配置错误了?以下两行
[code="html"]
<@s.submit value="保存为草稿" method="saveDraftOrder" cssClass="btn_w65px"/>
<@s.submit value="提交" method="saveFormalOrder" cssClass="btn_w65px"/>[/code]
好像和
action中的name属性名字不匹配哦,
而且两个action中的method都是同名的。
[code="html"]method="saveFormalOrder"[/code]
是不是我问题理解错误了?
validation-name:
ProductOrderAction-[color=red]saveDraftOrder[/color]-validation.xml
ProductOrderAction-[color=red]saveFormalOrder[/color]-validation.xml
红色标记的地方是下面定义的名字才对(用红色标记出来了)
漏了一个 :oops:
你的校验配置文件ProductOrderAction-saveDraftOrder-validation.xml的命名有问题。按照我上面说的改就可以了。
[quote]自己search 了一下 官网上这样说 貌似对我这个没什么用。。。
看来你还是不明白,详细的解释一下:
对于这个action配置:
如果action类里面有一个input方法,
那么就有了一个名字叫Crud_input的action.
配置这个action的校验的xml文件名就叫做:Crud_input-validation.xml
然后画面请求Crud_input的时候,就调用Crud_input-validation.xml来进行验证。
这个就是struts2的校验配置文件的命名规则。按照action的方法名来配置是没有用的。
你用了这样的定义方式。
[quote]<!-- 保存正式订单信息 -->
[/quote]
就产生了saveOrder和updateDraftOrderInfo两个Action,虽然对应的是同一个方法,但是配置校验文件的只要配置actionName对应的校验文件,
[quote]ProductOrderAction-saveOrder-validation.xml
ProductOrderAction-updateDraftOrderInfo-validation.xml [/quote]
就可以进行不同的验证。然后具体到你这儿页面上面使用的时候,直接在调用action的
submit按钮里面定义action属性就可以了,不用method属性。
<@s.submit value="保存为草稿" action="saveOrder" cssClass="btn_w65px"/>
<@s.submit value="提交" action="updateDraftOrderInfo" cssClass="btn_w65px"/>