我对 Struts2 有疑问
这是我的action配置,在Action中执行roleDete之前,调用了拦截器,但是在这之后,输入的值丢失了,没有id可以删除,如果我删除拦截器,那么id就可以了删除存在,有人可以指导我解决这个问题吗?
<action name="roleDelete" method="roleDelete" class="com.webapp.role.action.RoleAction">
<interceptor-ref name="validateUser"/>
<result name="input" type="tiles">usertypePage</result>
<result name="success" type="redirect">usertypeForm</result>
</action>
谢谢
最佳答案
听起来您定义的自定义 validateUser 拦截器堆栈不包含所需的 Struts 2 拦截器。默认情况下,Struts 2 在每个请求上调用以下拦截器,除非您定义自己的堆栈(正如您所做的那样):
<interceptor-stack name="defaultStack">
<interceptor-ref name="exception"/>
<interceptor-ref name="alias"/>
<interceptor-ref name="servletConfig"/>
<interceptor-ref name="i18n"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="chain"/>
<interceptor-ref name="debugging"/>
<interceptor-ref name="scopedModelDriven"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="checkbox"/>
<interceptor-ref name="multiselect"/>
<interceptor-ref name="staticParams"/>
<interceptor-ref name="actionMappingParams"/>
<interceptor-ref name="params">
<param name="excludeParams">dojo\..*,^struts\..*</param>
</interceptor-ref>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
</interceptor-stack>
我的建议是浏览上面的列表并一次将它们添加回一个,直到您弄清楚您需要哪些来正确填充您的请求变量。您可以在 Struts 2 docs 中阅读有关拦截器的更多信息.
关于Struts2 输入值在调用拦截器时丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3276688/