`
wutao8818
  • 浏览: 618187 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring mvc & freemarker 版ROR

阅读更多
实现COC原则无配置自动映射
引用
http://localhost:8080/jpetstore/index/index.html --> IndexController.index() --> /WEB-INF/ftl/index/index.flt



今天晚上试验了一下想象中的配置 成功了。

SPRING MVC  + FREEMARKER 实现类似ROR的 URL 自动路由 COTROLLER 处理结果 根据URL 自动映射到 URL 对应的 FTL 模板文件。

下面我把配置文件贴出来看看。

修改了jpetstore的部分文件。包括 web.xml 将 .html的请求映射到spring mvc上。

修改 petstore-servlet.xml 当然还要改一改你的build.xml才能将新的ftl一起部署过去。
引用


<beans>


<!-- ========================= VIEW DEFINITIONS ========================= -->
 
<bean id="viewNameTranslator"
class="org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator"/>
<!-- -->
<!-- freemarker config -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/ftl/"/>
</bean>

<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<!--prefix这个属性要注意,一开始我写成了/WEB-INF/ftl/找了半天告诉我找不到模板,原来是这里写错了。。-->

<property name="suffix" value=".ftl"/>
<!-- 如果你需要使用Spring 对 FreeMarker 宏命令的支持, 将这个属性设为true  -->
<property name="exposeSpringMacroHelpers" value="true"/>
</bean>


<!-- ========================= DEFINITIONS OF PUBLIC CONTROLLERS ========================= -->

<bean
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping "/>


<bean id="index"
class="org.springframework.samples.jpetstore.web.spring.IndexController">
</bean>


</beans>



这个配置就可以实现我刚才说的映射渲染模板的方式了。效果还不错。

引用
org.springframework.samples.jpetstore.web.spring.IndexController

这个CONTROLLER 继承 MultiActionController 这样就可以实现

http://localhost:8080/jpetstore/index/index.html --> IndexController.index方法上。

http://localhost:8080/jpetstore/index/list.html --> IndexController.list方法上。

MultiActionController的子类写法有些特殊要求,需要小心。参考API可以看到它的方法签名需要是

引用
public (ModelAndView | Map | String | void) actionName(HttpServletRequest request, HttpServletResponse response);


我一开始把它的签名写成protected 就出错了。后台提示无法找到handler。具体用法请参考API


同时ftl模板的位置相应的是/WEB-INF/ftl/index/index.html以及 /WEB-INF/ftl/index/list.html


是不是舒服多了?其实用SPRING MVC 也能体验ROR一样的COC的。让那些无聊的配置文件走开!











分享到:
评论
2 楼 wutao8818 2011-10-28  
fnet 写道
不行的,如果用PathVariable ,那么他render view时会带上PathVariable,
比如show_{id}

id=1时

view为show_1.ftl


这个问题倒是真不知道,谢谢提醒。要试试看。
1 楼 fnet 2011-04-23  
不行的,如果用PathVariable ,那么他render view时会带上PathVariable,
比如show_{id}

id=1时

view为show_1.ftl

相关推荐

    spring mvc +freemarker不错的mvc搭配

    Spring MVC 是一个强大...在Spring MVC中集成FreeMarker,首先需要在项目的配置文件(如`servlet-context.xml`)中配置FreeMarker视图解析器。这通常包括指定模板目录、编码格式和是否缓存模板等设置。例如: ```xml ...

    Spring MVC and FreeMarker Sample

    **Spring MVC与FreeMarker整合应用详解** Spring MVC是Spring框架的一部分,它是一个强大的Web应用程序开发模型,用于构建灵活、可维护的Java Web应用。而FreeMarker则是一个模板引擎,允许开发者将逻辑代码与呈现...

    spring MVC + freeMarker

    Spring MVC 和 FreeMarker 是两个在Java Web开发中广泛使用的框架,它们共同构建了一个高效、灵活的Web应用程序。Spring MVC是Spring框架的一部分,主要用于处理HTTP请求和响应,而FreeMarker则是一个模板引擎,用于...

    Spring MVC整合FreeMarker

    **Spring MVC 整合 FreeMarker 知识点详解** Spring MVC 是一款强大的、基于 Java 的 Web 开发框架,用于构建可维护的、模块化的、松耦合的 Web 应用程序。而 FreeMarker 是一个模板引擎,允许开发者将业务逻辑与...

    spring mvc freemarker 简单例子

    Spring MVC 和 Freemarker 是两种广泛应用于Java Web开发的技术。Spring MVC 是一个基于Spring框架的Model-View-Controller架构,用于构建高效、灵活的Web应用程序。而Freemarker 是一款强大的模板引擎,它与后端...

    spring mvc +freemarker不错的mvc搭配1.1

    spring mvc +freemarker不错的mvc搭配 原文: http://lavafree.iteye.com/blog/1096699 一、原来的程序有问题,导致maven无法编译运行。修改后解决了maven无法编译打包运行的问题,运行通过。 1.pom.xml 增加了必需的...

    spring mvc mybatis freemarker 开发CMS代码

    【标题】"Spring MVC MyBatis Freemarker 开发CMS代码" 涉及到的是一个基于Java技术栈的内容管理系统(CMS)开发项目。这个项目利用了Spring MVC作为控制层框架,MyBatis作为数据访问层框架,以及Freemarker作为视图...

    Spring3.2.1MVC+Freemarker简单示例

    在本文中,我们将深入探讨如何使用Spring 3.2.1 MVC框架与Freemarker模板引擎结合,构建一个简单的Web应用程序。Spring MVC是Spring框架的一部分,它为开发RESTful Web服务提供了强大的支持,而Freemarker则是一个轻...

    Spring 3 mvc + Freemarker 框架例子

    在本例子中,我们将深入探讨如何将Spring MVC与Freemarker模板引擎结合使用。 Freemarker是一个开源的模板引擎,用于生成动态HTML、XML或其他格式的文本。它不依赖任何Web容器,仅需要一个解析器来处理模板文件。...

    spring mvc json&&jackson jquery js

    Spring MVC 是一个强大的Java Web开发框架,用于构建高效、可维护的Web应用程序。它与Spring框架紧密结合,提供了模型-视图-控制器(MVC)架构,使得开发人员能够轻松地处理HTTP请求、数据绑定和视图渲染。在这个...

    spring MVC3 集成 freemarker

    **Spring MVC3 集成 FreeMarker 概述** Spring MVC 是一个强大的MVC框架,用于构建基于Java的Web应用程序。它提供了模型、视图和控制器的分离,使得开发过程更加模块化,易于维护。而FreeMarker则是一个模板引擎,...

    spring mvc freemarker 自定义标签

    下面将详细介绍Spring MVC与Freemarker自定义标签的使用。 首先,我们需要了解Freemarker的基础。Freemarker是一个基于模板的语言,它的主要任务是根据数据模型生成输出。在Spring MVC中,Freemarker模板通常用于...

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。这个教程“Spring MVC - A Tutorial”旨在帮助开发者深入理解和掌握Spring MVC的核心概念和...

    Mastering Spring MVC 3中文版

    《Mastering Spring MVC 3中文版》是一本深入解析Spring MVC框架的专业书籍,它涵盖了Spring MVC的核心概念、设计原理以及实际应用。Spring MVC是Spring框架的一部分,主要用于构建Web应用程序的模型-视图-控制器...

    整合 freemarker +spring security + spring MVC + spring DATA jpa 前端jtable 简单的crud

    本项目结合了Freemarker、Spring Security、Spring MVC和Spring Data JPA,旨在实现前端JTable的简单CRUD(创建、读取、更新、删除)功能。以下是这些技术的详细介绍及其在项目中的应用。 **Freemarker** 是一个...

    Spring MVC 4.2.3

    7. **多视图解析器**:Spring MVC支持多种视图解析器,如JSP、FreeMarker、Thymeleaf等,可以根据项目需求灵活选择。 8. **模板引擎集成**:例如,与Thymeleaf的集成使得开发者能编写声明式逻辑的模板,提高了视...

    最全最经典spring-mvc教程

    Spring MVC 是一款强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一部分,提供了一种优雅的方式来处理HTTP请求和响应,使得开发者可以专注于业务逻辑而不是底层实现。在这...

    spring mvc, tiles, freemarker集成

    标题中的“Spring MVC, Tiles, Freemarker集成”指的是在Java Web开发中,将Spring MVC作为控制器框架,Tiles作为页面布局工具,而Freemarker作为视图模板引擎进行整合使用的技术方案。这种集成可以帮助开发者构建...

    spring3 mvc restful freemarker jquery json

    综上所述,这个整合架构提供了一种高效的Web开发模式,Spring3 MVC处理后端逻辑,RESTful设计优化了接口,FreeMarker生成动态页面,jQuery简化了前端交互,而JSON则作为数据交换的桥梁。这样的组合能够帮助开发者...

Global site tag (gtag.js) - Google Analytics