我有struts.xml:
<action name="MyAction!*" class="my.Action" method="{1}">
<result name="step1">step1.jsp</result>
<result name="step2">step2.jsp</result>
<result name="error">error.jsp</result>
</action>
然后我的my.Action类有各种方法可以通过在URL中指定名称来调用,例如:
http://localhost:8080/MyApp/MyAction!method1.action
现在我们假设字段firstName
和lastName
在一种方法中是强制性的(例如注册的第一步),而不是在其他方法中。
如果我制作像MyAction-validation.xml
这样的通用验证文件,它将生成所有方法所需的字段。如果我进行MyAction-method1-validation.xml
之类的特定验证,则不会将其考虑在内。
有解决方案吗?
否则我将不得不在每个方法的struts.xml中映射不同的操作,而不是使用动态方法调用 - 或者手动进行验证。
答案 0 :(得分:0)
如果要使用编程方法进行验证,可以执行此操作。这通常使用validate()
方法完成,但您可以为validate
,validateStep1
等特定操作方法创建validateStep2
方法。这些方法仅验证{{} 1}}和step1
方法。我不确定是否有可用于为不同方法使用不同XML文件的选项。
此外,您不需要在操作中使用通配符映射来使用动态方法调用。只需使用:
step2
答案 1 :(得分:0)