我正在研究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");
}
答案 0 :(得分:0)
那是因为你没有用路径调用那个动作。尝试使用这种方法来调用那个可行的方法,并解决你的问题。
致电方法和行动
这将相应地起作用。称之为行动。