Struts2 / Struts1操作调用

问题描述 投票:1回答:1

i在使用Struts2和Struts1的应用程序上工作。现在,我想对不同的操作实施身份验证。我想使用interceptor检查namespace属于哪个action。我用Struts2动作包装了所有Struts1动作。因此所有strut1动作都通过拦截器运行。

<action name="contactsList" class="com.opensymphony.xwork2.ActionSupport">
    <result name="success">contactsList.do</result>
</action>

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

我的问题:来自浏览器的操作调用与通过Struts配置调用的操作调用之间是否有区别?如果可能的话,是否可以从浏览器中禁止Struts1操作,但允许在struts中使用它?

java jsp struts2 integration struts1
1个回答
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为止。

© www.soinside.com 2019 - 2024. All rights reserved.