0

我在 WebContent 文件夹中有所有 jsp 页面(例如:index.jsp),并且我的应用程序运行顺利。现在,我在 WebContent 中创建了一个文件夹“pages”,我在其中传输了所有 jsp 页面。

我在<struts>标签内添加了以下行:

<constant name="struts.convention.result.path" value="/pages" />

但是,它仍然没有在“页面”文件夹中搜索 jsp。我正进入(状态:

HTTP 状态 404 - /MyApplicationName/index.jsp

我在哪里做错了?

编辑:我的应用程序的当前结构如下:

欢迎页面是一个动作而不是一个 jsp 页面。此操作的结果页面是 index.jsp。此操作填充下拉菜单和 index.jsp 中的一些其他字段。现在,我想将 index.jsp 与其他 jsp 页面一起保存在“WebContent/pages”文件夹中。我的应用程序中有 30 多个 jsp 页面,我不想在 result-tag 中提及每个 jsp 的完整路径。这就是为什么我想使用 struts2 常量“struts.convention.result.path”

我的问题是,为什么我上面提到的代码不起作用?

4

3 回答 3

1

直接访问index.jsp会绕过所有 S2 请求处理。

不涉及 S2 或 S2 Convention 插件,您只是在访问 JSP 页面。

于 2013-01-02T16:47:33.287 回答
0

如果index.jsp是应用程序的第一页,则需要在<welcome-file>web.xml 的标记中将其路径更改为 /pages/index.jsp。至于休息,我同意@Dave Newton :)

于 2013-01-03T06:00:33.013 回答
0

可能您的错误出现在 struts.xml 中。

当您创建具有相同名称(文件夹名称)的new-Folder下制作时web-content

xml file under src并将其包含在struts.xml文件中,它将正常工作。

例如:假设您example folder在 web-content 下创建,现在创建 example.xml 文件

在 src 文件夹和 struts.xml 文件中包含 example.xml

示例.xml:

<struts>

    <package name="example" namespace="/example" extends="default">
     <action name="your action name" class="your class" method="your method">
     </action> 
</package>
</struts>

struts.xml:

<struts>

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />

<action  name="" class="" method="">
</action>
</package>

<include file="example.xml"/>

于 2013-01-03T11:29:32.063 回答