我正在尝试在Apache Struts 2中实现我的项目,但我对这项技术并不是很熟悉。同时,我在某处看到,在WEB-INF文件夹中创建Java Server Pages(JSP)页面是一种有效的方法。在论坛中,他们说这样做会增加网站的安全性,因为JSP页面不能通过URL直接访问,而只能通过其操作。
我已经建立了一些页面,但问题是我必须写下我的所有动作:
<action name=".." class=".." method=".." >
<result name="success"> /WEB-INF/pages/index.jsp</result>
</action>
我得到了正确的结果这样写;但是这样写一个动作页面是一个好方法吗?这会导致我的项目出现任何问题吗?我可以使用命名空间吗?
删除操作中的/ WEB-INF /答案 0 :(得分:4)
您正在寻找的是减少配置(至少部分)。请参阅“struts2-conventions-plugin”:http://struts.apache.org/2.2.3.1/docs/convention-plugin.html
默认情况下它喜欢放置的页面(这很容易覆盖,但我不打扰): /WEB-INF/content/my-page.jsp
它确实在配置xml方面节省了很多。除了设置全局struts2参数(开发模式并将主题设置为简单)之外,我几乎不使用xml。除了那个注释之外,还要处理其余的事情。你应该试一试。
convention插件不会阻止您在舒适的地方使用xml,因为xml优先,并且不会导致使用tile时出现任何问题。
答案 1 :(得分:2)
/WEB-INF
是必需的,因为它是JSP路径的一部分。包/动作名称空间与JSP路径解析无关(在默认包中,无论如何都没有插件)。
这也与Tiles无关; Tiles使用自己的配置文件,并且还需要JSP位置的完整路径名。在Struts 2配置中,您将引用磁贴定义(并使用"tiles"
结果类型)。