gpt4 book ai didi

java - jsp:forward 标记转发到 Struts 2 Action

转载 作者:搜寻专家 更新时间:2023-10-31 20:03:50 25 4
gpt4 key购买 nike

我正在将一个 Struts 应用程序迁移到 Struts 2。它是四年前由 Struts 1.2 开发的。

我的问题是:

在我的JSP中,有这样一条语句:

<jsp:forward page="/a.do" />

它在 Struts 1 中运行良好,但在 Struts 2 中不起作用,当我访问此 JSP 文件时它告诉我 HTTP 404 错误。

但是,如果我访问 http://localhost:8080/shell/a.do , 效果很好。

不知是什么原因,是不是forward Action 不能被Struts 2的过滤器抓到? ( org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter )

所以转发不能被分派(dispatch)到 Struts 2 Action ?

我的应用程序中有很多转发,如果转发不能在 Struts 2 中工作,它是使用重定向而不是转发的唯一解决方案吗?

其实这个问题是根据我的分析,原来的工作是显示站点的欢迎页面。如果我使用 jsp:forward转发到 a.do , 它不起作用。

然后我听从了 Roman 的建议,使用 result而不是前进。那么现在的问题是如何配置整个应用的默认 Action ?

我试过了 <default-action-ref name="a"/> , 但它仅适用于未映射的操作,例如 http://localhost:8080/shell2/(some-unmapped-action).do ,它会转到默认操作。但是如果我不指定 ".do" 它就不起作用.

当然这可以通过 url-rewrite 来完成,但我不想使用这种方法。

最佳答案

包含struts标签库

<%@ taglib prefix="s" uri="/struts-tags" %>

你可以简单地在你的jsp页面中写一些 Action

<s:action name="YourAction" namespace="/PackageNamespace" executeResult="true" />

关于java - jsp:forward 标记转发到 Struts 2 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16056166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com