Spring mvc Apache Tiles+;SpringMVC在jar文件中提供JSP
目的Spring mvc Apache Tiles+;SpringMVC在jar文件中提供JSP,spring-mvc,apache-tiles,web-fragment,Spring Mvc,Apache Tiles,Web Fragment,目的 设计web项目的“附加组件” 网络项目 我有一个打包为WAR的项目,它使用SpringMVC4.1.6和ApacheTiles 3.0.5作为UI框架。这是应用程序上下文的一个示例: <bean class="org.springframework.web.servlet.view.tiles3.TilesConfigurer" id="tilesConfigurer"> <property name="definitions"> <l
设计web项目的“附加组件” 网络项目
我有一个打包为WAR的项目,它使用SpringMVC4.1.6和ApacheTiles 3.0.5作为UI框架。这是应用程序上下文的一个示例:
<bean class="org.springframework.web.servlet.view.tiles3.TilesConfigurer" id="tilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/foo/bar/layouts.xml</value>
<value>classpath:/META-INF/ext/**/views.xml</value><!-- For add-ons -->
</list>
</property>
</bean>
/WEB-INF/foo/bar/layouts.xml
类路径:/META-INF/ext/**/views.xml
JAR我有另一个罐子,它是“附加组件”。这个jar将需要包含一些jsp文件。一般的想法是,如果我从/WEB-INF/lib目录中删除这个jar,那么当我重新启动WEB服务器时,所有相关的特性都将被删除。同样,当我将jar放入lib目录时,所有相关特性都将可用。示例磁贴定义(views.xml):
1.可以在tiles定义中定义驻留在JAR文件中的jsp文件吗?
2.使用/不使用web fragment可以实现这一点吗?不知何故,我设法找到了解决方案
@Override
public void onStartup(final Set<Class<?>> clazzes, final ServletContext servletContext) throws ServletException {
final ServletRegistration servletRegistration = servletContext.addServlet("name-of-servlet-declared-in-web.xml", DispatcherServlet.class);
servletRegistration.addMapping("/name-of-tiles-definition");
}
@覆盖
启动时公共无效(最终设置不知何故,我设法找到了解决方案
创建一个在jar.Override方法中实现ServletContainerInitializer的类,并添加servlet映射,如下所示:
@Override
public void onStartup(final Set<Class<?>> clazzes, final ServletContext servletContext) throws ServletException {
final ServletRegistration servletRegistration = servletContext.addServlet("name-of-servlet-declared-in-web.xml", DispatcherServlet.class);
servletRegistration.addMapping("/name-of-tiles-definition");
}
@覆盖
public void onStartup(最终设置)#3的文件类型是什么?这对tiles版本2有效吗?只是一个空文本文件,IIRC。不确定这是否适用于版本2.GL。#3的文件类型是什么?这对tiles版本2有效吗?只是一个空文本文件,IIRC。不确定这是否适用于版本2.GL。
<tiles-definitions>
<definition extends="main" name="name-of-tiles-definition">
<put-attribute name="body" value="/path-to-resource/jsp-name.jspx" />
</definition>
</tiles-definitions>