将JSP页面放在Apache Struts应用程序的WEB-INF文件夹中是一个好主意吗?

将JSP页面放在Apache Struts应用程序的WEB-INF文件夹中是一个好主意吗?,jsp,struts2,Jsp,Struts2,我正在尝试用ApacheStruts2实现我的项目,但我对这项技术不是很熟悉。同时,我在某个地方看到,在WEB-INF文件夹中创建Java服务器页面(JSP)页面是一种有效的方法。在论坛上,他们说这样做将提高网站的安全性,因为JSP页面不能通过URL直接访问,而只能通过其操作 我也创建了一些类似的页面,但问题是我必须在我的所有动作中这样写: <action name=".." class=".." method=".." > <result name="success"&g

我正在尝试用ApacheStruts2实现我的项目,但我对这项技术不是很熟悉。同时,我在某个地方看到,在WEB-INF文件夹中创建Java服务器页面(JSP)页面是一种有效的方法。在论坛上,他们说这样做将提高网站的安全性,因为JSP页面不能通过URL直接访问,而只能通过其操作

我也创建了一些类似的页面,但问题是我必须在我的所有动作中这样写:

<action name=".." class=".." method=".." >
  <result name="success"> /WEB-INF/pages/index.jsp</result>
</action> 

/WEB-INF/pages/index.jsp

我这样写得到了正确的结果;但是,这样写动作页面是一种好方法吗?。这会给我的项目带来任何问题吗?我可以使用名称空间删除操作中的/WEB-INF/吗?

需要
/WEB-INF
,因为它是JSP路径的一部分。包/操作名称空间与JSP路径解析无关(在默认包中,无论如何都没有插件)


这也与瓷砖无关;Tiles使用自己的配置文件,并且还需要指向JSP位置的完整路径名。在Struts 2配置中,您将参考tile定义(并使用
“tiles”
结果类型)。

听起来您想要的是减少配置(至少部分)。请参阅“struts2约定插件”:

默认情况下,它喜欢放置页面(这很容易覆盖,但我不介意): /WEB-INF/content/my-page.jsp

它确实节省了大量配置xml的费用。除了设置全局struts2参数(开发模式并将主题设置为simple),我几乎不使用xml。除此之外,注释会处理其余部分。你应该试一试


conventions插件不会阻止您在自己喜欢的地方使用xml,因为xml具有优先权,并且在使用Tile时不会引起任何问题。

但是在链接中,他们说可以使用namespace.Java包管理项目文件夹,WEB-INF下的名称空间和文件夹结构由conventions插件关联,您正在查看的内容与此无关。就在第一个xml中,您会看到他们可以将这些欢迎文件放在任何地方,包括同一个文件夹,因为路径是硬编码的,因此没有自动管理。。它是手动的,因此根本不受管理。@user359187这就是我添加“在默认包中”部分的原因。如果JSP路径前面没有一个前导的
/
,那么它们将预先挂起
名称空间
属性值。我认为有一种方法可以为标准的、非插件的dispatcher结果设置根路径,但目前我看不到;稍后我会跟进。@DaveNewton您好,是否有您提到的设置
根目录的可能属性的更新信息?