我有一个文件夹中的Spring MVC src/main/webapp/WEB-INF/views
包含我的视图模板。 我想将它移动到src/main/java/views
(或外部其他文件夹src/main/webapp
)。 如何配置Spring MVC中?
我看到一个文件src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml
包含
<beans:property name="prefix" value="/WEB-INF/views/" />
很明显从看那个,我可以把它改成
<beans:property name="prefix" value="/views/" />
这将使我的意见src/main/webapp/views
,但我没有看到任何方式移动views
出的src/webapp
文件夹中。
换句话说,它是超明确表示, value="/"
等同于src/main/webapp/
,所以它看起来像我仅限于把我的视图文件夹的src / main / webapp的内部。
如何在世界上设置我的视图文件夹是外部src/main/webapp
,例如在src/main/foobar
!?! 无论我在谷歌/ Bing搜索我无法找到任何东西。
编辑:我试图使用/../
来实现它:
<beans:property name="prefix" value="/../java/edu/csus/csc191/views/" />
但所产生的是说,一个错误
重度:Servlet.service()进行的servlet [appServlet]与路径上下文[/ HP-DSAT]抛出异常[请求处理失败; 嵌套异常是org.thymeleaf.exceptions.TemplateInputException:错误解析模板“v2_upload”,模板可能不存在或者可能不通过任何已配置的模板解析器]与根源是可访问的
上述模板不存在中src/main/webapp/../java/views
,相当于src/main/java/views
通常应用构建于战争的话,将查找在的src / main / webapp的组件,你可以改变这种使用maven定制的项目结构。
如何配置自定义Maven项目结构
这是更好地保持在WEB-INF视分量,因为它是不能公开访问。
当您使用Thymeleaf这是很容易才达到。 我不知道是否有对JSP类似的解决方案。
所有你需要做的是改变(或增加)的模板解析器。 Thymeleaf目前直接支持ServletContextTemplateResolver和ClassLoaderTemplateResolver(如果我没记错的话也FilepathTemplateResolver)。
所以,你想你的情况是什么在TemplateEngine宣布ClassLoaderTemplateResolver:
<beans:bean id="classLoaderTemplateResolver"
class="org.thymeleaf.templateresolver.ClassLoaderTemplateResolver">
<beans:property name="prefix" value="views/" />
<beans:property name="suffix" value=".html" />
<beans:property name="templateMode" value="HTML5" />
<beans:property name="characterEncoding" value="UTF-8" />
<beans:property name="cacheable" value="${thymeleaf.template.cacheable}" />
<beans:property name="order" value="0" />
</beans:bean>
<beans:bean class="org.thymeleaf.spring3.dialect.SpringStandardDialect"
id="thymeleafSpringDialect" />
<beans:bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine">
<beans:property name="templateResolvers">
<beans:set>
<beans:ref bean="classLoaderTemplateResolver" />
</beans:set>
</beans:property>
</beans:bean>
我想,你不能这样做,因为出WebApp文件夹的方式将意见,你把你的web应用组件进行应用程序的根,因为的src / main / webapp的是你的web应用程序的根。
Web服务器始终部署Web应用程序根目录中唯一的Web应用程序组件。 如果你把意见了Web应用程序,那么Web服务器将无法部署。
让我纠正,如果我错了。
文章来源: How do I move my src/main/webapp/WEB-INF/views folder out of src/main/webapp/?