`
fly2wind
  • 浏览: 27358 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类

Spring MVC 整合sitemesh, freemarker 支持完全REST方式

阅读更多
使用Spring MVC REST 方式,希望使用如下的URL:
/users/1
/users


public class FreemarkerDispatcherServlet extends DispatcherServlet {
	public static final long serialVersionUID = -2440216393145762479L;

	private static final UrlPathHelper urlPathHelper = new UrlPathHelper();

	private FreemarkerDecoratorServlet servlet = new FreemarkerDecoratorServlet();

	@Override
	protected void initFrameworkServlet() throws ServletException {
		servlet.init(getServletConfig());
	}

	@Override
	protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception {
		String path = urlPathHelper.getRequestUri(request);

		System.out.println(path);
		if (StringUtils.startsWith(path, "/WEB-INF/decorators/")) {
			servlet.doGet(request, response);
		} else {
			super.doService(request, response);
		}
	}
}


web.xml中的配置:
<servlet>
		<servlet-name>dispatcher</servlet-name>
		<servlet-class>freemarker.ext.servlet.FreemarkerDispatcherServlet</servlet-class>
		<init-param>
			<param-name>TemplatePath</param-name>
			<param-value>/</param-value>
		</init-param>
		<init-param>
			<param-name>default_encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>


	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.css</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.gif</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.jpg</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.js</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>dispatcher</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
分享到:
评论

相关推荐

    spring mvc sitemesh velocity整合

    在本项目中,Spring MVC与两个额外的技术——Sitemesh和Velocity进行了整合,增强了应用的模板渲染和页面布局能力。 Sitemesh 是一个开源的Web应用装饰器框架,主要用于统一网站的页面布局和样式。通过Sitemesh,...

    freemarker 与sitemesh 整合例子

    4. **整合Sitemesh和Freemarker**:为了让Sitemesh能够装饰Freemarker生成的页面,需要在Freemarker模板中添加特殊的指令,如`&lt;@sitemesh.page&gt;`,这告诉Sitemesh哪些部分是需要被装饰的。 5. **处理请求**:当用户...

    sitemesh和freemarker结合自我总结

    ### Freemarker与Sitemesh结合的关键知识点 #### 一、简介 - **Freemarker**:作为一款功能强大的模板引擎,Freemarker被广泛应用于Web应用程序中,它负责将数据模型转换成HTML、XML或其他文本格式。Freemarker的一...

    springMvc+freemarker

    在这个"springMvc+freemarker"的项目中,我们可以看到作者用Spring MVC与FreeMarker模板引擎集成创建了一个示例应用。 首先,Spring MVC框架的主要组件包括DispatcherServlet、Controller、Model、View和...

    使用sitemesh替换tiles2,spring mvc+spring web flow+sitemsh

    标题中的“使用sitemesh替换tiles2,spring mvc+spring web flow+sitemsh”指出了一种在Spring MVC和Spring Web Flow项目中用Sitemesh替代Tiles2作为页面布局工具的技术实践。Sitemesh和Tiles2都是用于创建可重用的...

    spring-boot-sitemesh源码整合

    spring-boot-sitemesh 源码整合

    spring jsp freemaker sitemesh

    在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而JSP(JavaServer Pages)和FreeMarker、Sitemesh则是Web开发中用于视图层渲染的重要技术。让我们详细探讨一下这三个技术以及它们如何协同工作。 **...

    一个Struts2+Spring2.5+SiteMesh的小DEMO

    Struts2、Spring2.5 和 SiteMesh 是Java Web开发中的三个重要框架,它们共同构建了一个强大且灵活的Web应用程序架构。在这个小DEMO中,我们将深入探讨这三个框架的集成和工作原理。 **Struts2** 是一个基于MVC...

    Struts2整合SiteMesh

    通过这样的整合,Struts2和SiteMesh可以协同工作,为开发者提供了一种高效的方式来管理和维护网站的布局,同时保持业务逻辑的清晰。在实际开发中,还可以根据需求调整装饰器的定义,实现更复杂、多样的页面布局。

    SpringMVC-Freemarker_Sitemesh3例子

    为了实现SpringMVC、Freemarker和Sitemesh3的整合,我们需要以下步骤: 1. **配置Maven**:在`pom.xml`中添加所需的依赖,如SpringMVC、Freemarker和Sitemesh3的jar包。 2. **配置SpringMVC**:在`web.xml`中配置...

    struts2sitemesh-freemarker 源码

    5. **MVC模式**:Struts2遵循Model-View-Controller(MVC)设计模式,源码展示了如何通过Action(Controller)处理请求,与模型交互,然后使用FreeMarker(View)渲染结果。Sitemesh在这里作为视图的一部分,增强了...

    springMVC与sitemesh的结合

    4. **Sitemesh与Spring MVC的交互**:Spring MVC的视图解析器会返回一个逻辑视图名,Sitemesh根据这个名字找到对应的JSP文件,然后应用布局模板。Sitemesh的配置文件(`web.xml`中的`sitemesh.properties`)可以定制...

    Maven版,Spring mvc, CXF WebService, WebService/Controller Interceptor, Sitemesh

    本项目基于Maven,采用Spring MVC和Apache CXF框架,实现了一个完整的WebService服务器,同时还涉及到了Interceptor(拦截器)和Sitemesh技术。下面我们将深入探讨这些技术及其在项目中的应用。 首先,Maven是一个...

    SiteMesh教程及SiteMesh官方文档翻译

    要在Spring MVC项目中整合Sitemesh和Freemarker,首先需要确保项目中已经包含了Sitemesh和Freemarker的相关依赖。然后,可以在`web.xml`中配置Sitemesh过滤器,并在Spring配置文件中配置Freemarker视图解析器。 ...

    Struts2整合SiteMesh技巧

    在项目的`web.xml`文件中,需要添加三个过滤器来支持Struts2与SiteMesh的整合: 1. **struts-cleanup**过滤器:该过滤器的作用是在Struts2处理完请求之后不立即清除`ActionContext`,这样可以让SiteMesh有机会访问到...

    分享一个freemarker sitemesh jsp ext整合的完整项目

    5. **后端控制**:在Java后端,你需要创建控制器(如Spring MVC的Controller或者Servlet)来处理请求,准备数据模型,并将模型传递给Freemarker。Freemarker会根据模型中的数据渲染模板,然后返回给Sitemesh进行装饰...

    spring mvc

    Spring MVC 提供了一种清晰的分离关注点的方式,允许开发者将业务逻辑、数据处理和用户界面分开。这种分离使得代码更易于测试、维护和扩展。 【Spring MVC 配置】 1. **Web.xml 配置**: 在 `web.xml` 文件中,...

    springmvc+mybatis+ehcache+freemarker+sitemesh页面布局(注解)整合实例完美运行

    SpringMVC是Spring框架的一部分,是一个用于构建Web应用的轻量级MVC框架。它提供了一个分层架构,允许开发者将业务逻辑、数据访问和用户界面分离。通过注解,如@Controller和@RequestMapping,可以简化配置,提高...

Global site tag (gtag.js) - Google Analytics