使用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进行了整合,增强了应用的模板渲染和页面布局能力。 Sitemesh 是一个开源的Web应用装饰器框架,主要用于统一网站的页面布局和样式。通过Sitemesh,...
4. **整合Sitemesh和Freemarker**:为了让Sitemesh能够装饰Freemarker生成的页面,需要在Freemarker模板中添加特殊的指令,如`<@sitemesh.page>`,这告诉Sitemesh哪些部分是需要被装饰的。 5. **处理请求**:当用户...
### Freemarker与Sitemesh结合的关键知识点 #### 一、简介 - **Freemarker**:作为一款功能强大的模板引擎,Freemarker被广泛应用于Web应用程序中,它负责将数据模型转换成HTML、XML或其他文本格式。Freemarker的一...
在这个"springMvc+freemarker"的项目中,我们可以看到作者用Spring MVC与FreeMarker模板引擎集成创建了一个示例应用。 首先,Spring MVC框架的主要组件包括DispatcherServlet、Controller、Model、View和...
标题中的“使用sitemesh替换tiles2,spring mvc+spring web flow+sitemsh”指出了一种在Spring MVC和Spring Web Flow项目中用Sitemesh替代Tiles2作为页面布局工具的技术实践。Sitemesh和Tiles2都是用于创建可重用的...
spring-boot-sitemesh 源码整合
在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而JSP(JavaServer Pages)和FreeMarker、Sitemesh则是Web开发中用于视图层渲染的重要技术。让我们详细探讨一下这三个技术以及它们如何协同工作。 **...
Struts2、Spring2.5 和 SiteMesh 是Java Web开发中的三个重要框架,它们共同构建了一个强大且灵活的Web应用程序架构。在这个小DEMO中,我们将深入探讨这三个框架的集成和工作原理。 **Struts2** 是一个基于MVC...
通过这样的整合,Struts2和SiteMesh可以协同工作,为开发者提供了一种高效的方式来管理和维护网站的布局,同时保持业务逻辑的清晰。在实际开发中,还可以根据需求调整装饰器的定义,实现更复杂、多样的页面布局。
为了实现SpringMVC、Freemarker和Sitemesh3的整合,我们需要以下步骤: 1. **配置Maven**:在`pom.xml`中添加所需的依赖,如SpringMVC、Freemarker和Sitemesh3的jar包。 2. **配置SpringMVC**:在`web.xml`中配置...
5. **MVC模式**:Struts2遵循Model-View-Controller(MVC)设计模式,源码展示了如何通过Action(Controller)处理请求,与模型交互,然后使用FreeMarker(View)渲染结果。Sitemesh在这里作为视图的一部分,增强了...
4. **Sitemesh与Spring MVC的交互**:Spring MVC的视图解析器会返回一个逻辑视图名,Sitemesh根据这个名字找到对应的JSP文件,然后应用布局模板。Sitemesh的配置文件(`web.xml`中的`sitemesh.properties`)可以定制...
本项目基于Maven,采用Spring MVC和Apache CXF框架,实现了一个完整的WebService服务器,同时还涉及到了Interceptor(拦截器)和Sitemesh技术。下面我们将深入探讨这些技术及其在项目中的应用。 首先,Maven是一个...
要在Spring MVC项目中整合Sitemesh和Freemarker,首先需要确保项目中已经包含了Sitemesh和Freemarker的相关依赖。然后,可以在`web.xml`中配置Sitemesh过滤器,并在Spring配置文件中配置Freemarker视图解析器。 ...
在项目的`web.xml`文件中,需要添加三个过滤器来支持Struts2与SiteMesh的整合: 1. **struts-cleanup**过滤器:该过滤器的作用是在Struts2处理完请求之后不立即清除`ActionContext`,这样可以让SiteMesh有机会访问到...
5. **后端控制**:在Java后端,你需要创建控制器(如Spring MVC的Controller或者Servlet)来处理请求,准备数据模型,并将模型传递给Freemarker。Freemarker会根据模型中的数据渲染模板,然后返回给Sitemesh进行装饰...
Spring MVC 提供了一种清晰的分离关注点的方式,允许开发者将业务逻辑、数据处理和用户界面分开。这种分离使得代码更易于测试、维护和扩展。 【Spring MVC 配置】 1. **Web.xml 配置**: 在 `web.xml` 文件中,...
SpringMVC是Spring框架的一部分,是一个用于构建Web应用的轻量级MVC框架。它提供了一个分层架构,允许开发者将业务逻辑、数据访问和用户界面分离。通过注解,如@Controller和@RequestMapping,可以简化配置,提高...