Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Struts2/Struts1动作调用_Java_Jsp_Struts2_Integration_Struts1 - Fatal编程技术网

Java Struts2/Struts1动作调用

Java Struts2/Struts1动作调用,java,jsp,struts2,integration,struts1,Java,Jsp,Struts2,Integration,Struts1,我在使用Struts2和Struts1的应用程序上工作。现在我想为不同的操作实现身份验证。我想使用拦截器检查操作属于哪个命名空间。我用Struts2动作包装了所有Struts1动作。所以所有strut1操作都会通过拦截器运行 <action name="contactsList" class="com.opensymphony.xwork2.ActionSupport"> <result name="success">contactsList.do</res

我在使用Struts2和Struts1的应用程序上工作。现在我想为不同的操作实现身份验证。我想使用
拦截器
检查
操作
属于哪个
命名空间
。我用Struts2动作包装了所有Struts1动作。所以所有strut1操作都会通过拦截器运行

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

联系人列表
问题是,如果用户在浏览器中输入struts1操作,则不会调用拦截器


我的问题:来自浏览器的操作调用和通过Struts配置调用的操作调用之间是否有区别。如果可能的话,是否可以从浏览器中禁用Struts1操作,但从struts内部则允许该操作?

您的想法是错误的。Struts2中有一个函数,它实际上包含了Struts1动作。因此,代码看起来像

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

com.mycompany.myapp.contactsListation
contactsList.jsp

对于您的问题,Struts2将返回重定向或分派到servlet的结果,即使您的操作什么也不做。您可以对浏览器执行任何操作,但Struts将接受请求,直到您将其映射到url,它负责对浏览器请求做出反应

禁用struts1并仅使用struts2调度程序?您是指servlet映射吗?动作*.do Yes,以及servlet本身。然后用户将只能通过struts2 dispatcher访问内容。不,这不起作用,因为这样就不会调用struts1操作。我希望从struts2.action重定向到struts1.do应该可以工作,但从输入的url不应该工作。文档中说“Struts 1插件目前只允许您在Struts 2应用程序中运行Struts 1操作。它不允许您继续在JSP中使用Struts 1标记库。您的JSP必须转换为使用Struts 2标记库。“我无法更改struts1操作或JSP。我必须像它们一样使用它们。没错,这是迁移的方式。您要么这样做,要么同时使用两个框架,但不是您所做的方式。