我是 Struts 2 的新手,我遇到过这种语法(在教程中推荐)。
<action name="Register_*" method="{1}" class="Register">
<result name="input">/member/Register.jsp</result>
<result type="redirectAction">Menu</result>
</action>
我知道它调用 Register.{1} 方法。问题是用户可以输入另一个(随机)值并导致 500 错误(这将被正确记录为错误)。
如何预防?
请您参考如下方法:
在我的应用程序中,我们这样使用它:
<action name="*/*" class="{1}Action" method="{2}">
<interceptor-ref name="CustomAuthStack" />
<result>/pages/{1}/{2}.jsp</result>
<result name="input">/pages/error/denied.jsp</result>
<result name="logout">/pages/error/denied.jsp</result>
<!-- methods that come back to listing after processing -->
<result name="remove" type="redirectAction">{1}/list</result>
<result name="save" type="redirectAction">{1}/list</result>
<result name="enable" type="redirectAction">{1}/list</result>
....
</action>
对于像 myapp/users/list 这样的斜杠,你必须使用
<constant name="struts.enable.SlashesInActionNames" value="true" />
在 strus.xml 中。
现在你有了一个标准:
Action --> UserAction jsp -----> 用户/list.jsp
等等