私はStruts 1.1アプリケーションに取り組んでいます。
JSP フォーム ページ (つまり、adduser.jsp) の検証を追加しました。
追加ボタンをクリックすると検証されます。そして、「Validator-XSS.xml」での検証は正常に機能しています。
しかし、検証が失敗すると、jsp フォーム ページ (つまり、adduser.jsp) である入力属性に転送されます。
ここで、JSP ページの代わりに JSP フォーム ページ (つまり adduser.jsp
) を開く別のアクション (ieopenAddUser.do) に呼び出しを転送する必要があります。
アップデート
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を介して検証されますが、呼び出しは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");
}