我有以下代码段
来自XML文件的
<action name="list-process-solution" class="actions.ProcessSolutionAction" method="listProcessSolutions">
<interceptor-ref name="store">
<param name="operationMode">RETRIEVE</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
<result name="success">process_solution_list.jsp</result>
<result name="input">process_solution_list.jsp</result>
<result name="error">Error.jsp</result>
<result name="login">Login.jsp</result>
</action>
<action name="delete-process-solution" class="actions.ProcessSolutionAction" method="crudProcessSolution">
<interceptor-ref name="store">
<param name="operationMode">STORE</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
<result name="success" type="redirectAction">
<param name="actionName">list-process-solution</param>
<param name="nsec">${nsec}</param>
</result>
<result name="error">Error.jsp</result>
<result name="login">Login.jsp</result>
</action>
删除后我重定向到列表页面(同样再次页面)
但是我得到的结果是input
我不知道我错在哪里。
我已将此链接配置为删除
<s:url var="varDeletePS" action="delete-process-solution">
<s:param name="nsec">
<s:property value="nsec"/>
</s:param>
<s:param name="processId">
<s:property value="processId"/>
</s:param>
<s:param name="opType">
<s:property value="2" />
</s:param>
</s:url>
<s:a href="%{varDeletePS}" id="id-delete-PS-link" cssClass="class-delete">
Delete
</s:a>
在行动中,我有 getters and setters
这些字段private ProcessSolution processSolution;
private short opType;
private String nsec;
模型ProcessSolution
的请参阅此link
我的问题是
如何在此处理结果名称input
?我不知道哪个参数错了?
更新: -
如何在redirectAction
之后继续使用相同的请求,以便获取我的请求参数?
如何识别哪个字段有错误?
更新2:
我的delete-process-solution
正常执行,但结果成功,redirectAction
到list-process-solution
,我的结果是输入
答案 0 :(得分:0)
"input"
结果。为操作类中的每个操作创建前缀的验证方法,并将input
结果添加到操作配置中。
<result name="input">Login.jsp</result>
您可能遇到导致INPUT
的验证错误,但未执行操作且未设置消息。如果要阻止验证操作,可以将操作配置为从验证拦截器中排除方法或使用上述解决方案。
就validation
拦截器实现方法过滤器拦截器而言,您可以在struts.xml
中执行此操作。或者只是在方法上添加@SkipValidation
注释。
@SkipValidation
public String crudProcessSolution(){//used this method for delete
//<action name="delete-process-solution" class="actions.ProcessSolutionAction" method="crudProcessSolution">