我在WebContent文件夹中有所有jsp页面(例如:index.jsp),我的应用程序运行顺畅。 现在,我创建了一个文件夹" pages"在WebContent里面,我转移了所有的jsp页面。
我在<struts>
标记中添加了以下行:
<constant name="struts.convention.result.path" value="/pages" />
但是,它还没有在&#34;页面内搜索jsp&#34;夹。 我得到了:
HTTP状态404 - /MyApplicationName/index.jsp
我在哪里犯错?
编辑:我的申请的当前结构如下:
欢迎页面是一个动作,而不是一个jsp页面。此操作的结果页面是index.jsp。此操作将填充index.jsp中的下拉菜单和其他一些字段。现在,我想将index.jsp与其他jsp页面一起保存在文件夹&#34; WebContent / pages&#34;中。我的应用程序中有超过30个jsp页面,我不想提及结果标记中每个jsp的完整路径。这就是为什么我要使用struts2常量&#34; struts.convention.result.path&#34;
我的问题是,为什么我上面提到的代码不起作用?
答案 0 :(得分:1)
直接访问index.jsp
会绕过所有S2请求处理。
没有涉及S2或S2 Convention插件,您只是访问JSP页面。
答案 1 :(得分:0)
如果index.jsp
是您应用程序的第一页,那么您需要将其路径更改为web.xml的<welcome-file>
标记中的/pages/index.jsp。休息时我同意@Dave Newton:)
答案 2 :(得分:0)
可能你的错误是在struts.xml中。
在new-Folder
制作下创建web-content
,同名(文件夹名称)为
xml file
under src
并将其包含在struts.xml
文件中,它可以正常使用。
例如:假设您在web-content下创建了example folder
,现在创建example.xml文件
在src文件夹下,在struts.xml文件中包含example.xml
的example.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"/>