验证失败时转发对Action类的调用

时间:2012-12-26 10:30:30

标签: struts struts-validation

我正在研究struts 1.1应用程序  我已经为JSP表单页面添加了验证(即adduser.jsp) 单击“添加”按钮后会进行验证。我在“Validator-XSS.xml”中的验证工作正常 但是当验证失败时,它转发到输入属性,即jsp表单页面(即adduser.jsp) 在这里,我需要将call转发给另一个动作  (即e.openAddUser.do)
其中打开了JSP页面的JSP表单页面(即adduser.jsp)。

更新

的struts-config.xml

    <struts-config>
    <!-- some another entries -->

    <form-bean name="UserForm" type="com.UserForm"/>

    <action path="/createuser" type="com.CreateUserAction" name="UserForm" 
    scope="request"> 
            <forward name="adduser" path="/jsp/adduser.jsp"/> 
    </action>

    <action path="/adduser" type="com.AddUserAction" input="/jsp/adduser.jsp" 
name="UserForm" scope="request"> 
            <forward name="showuser" path="/showUserDetails.do"/>
    </action>

    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property
            property="pathnames"
            value="/WEB-INF/User-Validator.xml"/>
    </plug-in>
    </struts-config>

XSS-validator.xml

<form-validation>
<formset>
    <form name="UserForm">

        <field property="userName" depends="mask">
<msg name="mask" key="ui.field.invalidvalue" bundle="appResources"/>                
            <var>
                <var-name>mask</var-name>
                <var-value>^[a-zA-Z0-9-_]*$</var-value>
            </var>
        </field>

    </form>
</formset>

点击在jsp文件中创建用户,它将调用 createuser.do 它将打开adduser.jsp 在表单中输入详细信息并单击添加按钮后,它将 adduser.do 它也通过XSS-validator.xml进行了vlidated 但是电话会转到 jsp / adduser.jsp 但是我需要它来调用 createuser.do

ActionForm is extended by ValidatorForm



public class UserForm extends ValidatorForm{

    String userName;
    String userId;

    //getter setter
    }

ActionClass



Public Class CreateUserAction{
    public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

    //some code to bring list and other details

    mapping.findForward("adduser");
    }

    Public Class AddUserAction{
    public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

   //some code to add user and other details

    mapping.findForward("showuser");
    }

1 个答案:

答案 0 :(得分:0)

那是因为你没有用路径调用那个动作。尝试使用这种方法来调用那个可行的方法,并解决你的问题。

致电方法和行动

这将相应地起作用。称之为行动。