Struts2 / Struts1动作调用

时间:2013-04-11 07:41:06

标签: java jsp struts2 integration struts1

我在使用Struts2和Struts1的应用程序上工作。现在我想为不同的操作实现身份验证。我想使用interceptor来检查namespace action属于哪个<action name="contactsList" class="com.opensymphony.xwork2.ActionSupport"> <result name="success">contactsList.do</result> </action> 。我用Struts2动作包装了所有Struts1动作。所以所有strut1-action都会通过拦截器。

{{1}}

问题在于,如果用户在浏览器中输入struts1-action,则不会调用拦截器。

我的问题:来自浏览器的动作调用与通过Struts配置调用的动作调用之间是否存在差异。如果可能的话,是否可以禁止浏览器中的Struts1操作,但是在struts中是允许的?

1 个答案:

答案 0 :(得分:0)

你想错了方向。 Struts2中有一个Struts1 plugin实际上包含了Struts1动作。所以,代码看起来像

<action name="contactsList" class="org.apache.struts2.s1.Struts1Action">
  <param name="className">com.mycompany.myapp.ContactsListAction</param>
  <result>contactsList.jsp</result>
</action>

对于您的问题,即使您的操作无效,Struts2也会返回重定向或调度到servlet的结果。您可以对浏览器执行任何操作,但Struts会接受请求,直到您将其映射到负责对浏览器请求作出反应的URL。