`
toknowme
  • 浏览: 140255 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

FreeMarker 多视图配置

 
阅读更多
(1)新增自定义ViewResolver
package com.zcrm.resolver;
import java.util.Locale;
import java.util.Map;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.ViewResolver;
public class MultViewResolver implements ViewResolver {
 private Map<String, ViewResolver> resolvers;
 @Override
 public View resolveViewName(String viewName, Locale locale) throws Exception {
  int n = viewName.lastIndexOf(".");
  String suffix = "";
  if (n == (-1)) {
   suffix = "jsp";
  } else {
   suffix = viewName.substring(n + 1);
   viewName = viewName.substring(0, n);
  }
  // 根据下划线后面的字符串去获取托管的视图解析类对象
  ViewResolver resolver = resolvers.get(suffix);
  if (resolver != null) {
   return resolver.resolveViewName(viewName, locale);
  } else {
   return null;
  }
 }
 public Map<String, ViewResolver> getResolvers() {
  return resolvers;
 }
 public void setResolvers(Map<String, ViewResolver> resolvers) {
  this.resolvers = resolvers;
 }
}
 
 
(2)修改spring-mvc.xml,使用自定义ViewResolver
 <bean id="zcrmViewResolver" class="com.zcrm.resolver.MultViewResolver">
  <property name="resolvers">
   <map>
    <!-- 定义跳转的文件的前后缀 ,视图模式配置 -->
    <entry key="jsp">
     <bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="viewClass"
       value="org.springframework.web.servlet.view.JstlView" />
      <property name="prefix" value="/WEB-INF/jsp/pages/" />
      <property name="suffix" value=".jsp" />
     </bean>
    </entry>
   
    <entry key="ftl">
     <bean id="viewResolverFtl"
      class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
      <property name="viewClass"
       value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
      <property name="contentType" value="text/html; charset=utf-8" />
      <property name="cache" value="true" />
      <property name="prefix" value="" />
      <property name="suffix" value=".ftl" />
     </bean>
    </entry>
   </map>
  </property>
 </bean>
 
 <!-- ******************************freeMarker配置【START】****************************** -->
 <bean id="freemarkerConfig"
  class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
  <property name="templateLoaderPath" value="/WEB-INF/jsp/ftl/" />
  <property name="freemarkerVariables">
   <map>
    <entry key="xml_escape" value-ref="fmXmlEscape" />
   </map>
  </property>
  <property name="defaultEncoding" value="utf-8" />
  <property name="freemarkerSettings">
   <props>
    <prop key="template_update_delay">3600</prop>
   </props>
  </property>
 </bean>
 <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" />
 <!-- ******************************freeMarker配置【END】****************************** -->
 
(3)新增freemarker.jar
 
(4)编写ftl文件
datatables.ftl
 
(5)编写测试Controller
package com.zcrm.controller.crm2.freemarker;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/crm2/freemarker")
public class Crm2FreeMarkerController {
 
 @RequestMapping(value={"/init"},method=RequestMethod.GET)
    public String updatePassword(HttpServletRequest req, Model model) {
  return "crm2/datatables.ftl";
    }
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0
1
分享到:
评论

相关推荐

    Spring配置Freemarker视图解析器,配置多个视图解析器

    本篇文章将深入探讨如何在Spring中配置Freemarker视图解析器,以及如何配置多个视图解析器以实现更灵活的应用场景。 首先,让我们了解如何配置单个Freemarker视图解析器。在Spring的配置文件(如`...

    springMVC 多视图配置(Jsp Freemarket Json)实例

    在这个"springMVC 多视图配置(Jsp Freemarket Json)实例"中,我们将探讨如何在 SpringMVC 中设置多种视图解析器来支持 Jsp、FreeMarker 和 Json 格式的响应。 **1. 视图解析器 (View Resolver)** 在 SpringMVC ...

    struts2中jsp和freemarker模板视图的案例

    在Struts2中,配置Freemarker视图涉及到在`struts.xml`配置文件中设置`result`类型为`freemarker`,并指定对应的模板文件路径。在模板文件中,使用Freemarker语法(如`${}`)来引用Action的属性。案例中的Freemarker...

    Spring配置Freemarker视图解析器,前台页面全部使用freemarker渲染

    总结来说,通过Spring配置Freemarker视图解析器,我们可以将后端的Java逻辑与前端的HTML呈现分离,使得开发更加模块化。Freemarker的强大模板语言则提供了丰富的功能,让开发者能方便地创建动态页面。通过熟练掌握...

    nutz的freemarker视图插件

    "nutz的freemarker视图插件"使得Nutz框架能够无缝地集成Freemarker,提供了以下关键特性: 1. **配置**: - 在Nutz项目中添加`nutz-freemarker-plugin.jar`库,配置Nutz的MVC模块,指定视图解析器为Freemarker。 ...

    Struts2 与Freemarker 的配置方法

    Struts2的Action结果可以映射到Freemarker模板,使得数据模型可以直接传递给模板,简化了视图的构建。 3. **安装Freemarker模板文件插件**: - 开发者可以使用FreeMarkerIDE这样的Eclipse插件来增强Freemarker模板...

    Struts2与Freemarker的配置方法

    4. **Freemarker的集成**:为了使用Freemarker作为视图渲染引擎,需在Struts2的配置文件中声明Freemarker插件,并配置其路径。例如: ```xml &lt;constant name="struts.freemarker.config" value="/WEB-INF/...

    freemarker与struts配置实例和dwr实例

    **FreeMarker** 是一个模板引擎,它允许开发者将业务逻辑与视图层分离,使页面呈现更加灵活。FreeMarker模板语言(FTL)是一种简单的文本格式,用于描述如何在HTML或其他文档类型中动态生成内容。在Struts2框架中,...

    springjpa 和 spring多视图配置实例

    本实例探讨的是如何在Spring环境中整合Spring MVC、Spring Data JPA以及使用Freemarker或JSON作为多视图配置。让我们深入理解这些技术及其相互作用。 首先,Spring MVC是Spring框架的一部分,专门用于构建Web应用...

    freemarker与struts2详细配置

    **FreeMarker与Struts2的整合配置详解** ...通过这些配置和使用技巧,你可以高效地利用FreeMarker与Struts2进行Web开发,实现强大的视图层功能。记住,实践是检验配置正确性的最好方式,所以动手尝试并调试你的代码吧!

    Spring + hibernate + webwork + freemarker 整合配置

    4. **FreeMarker** 作为模板引擎,允许开发者分离视图和逻辑,使前端代码更清晰、可维护。 整合这些框架可以创建出一个松耦合、易于测试和扩展的系统。然而,配置过程可能会比较复杂,需要理解每个框架的工作原理...

    freemarker Demo 适用于freemarker初学

    Freemarker是一个强大的模板引擎,常用于JavaEE应用中的视图层处理,尤其与Struts2等MVC框架配合使用,能实现灵活的动态页面渲染。这个"freemarker Demo"是一个适合初学者的示例项目,旨在帮助新接触Freemarker的...

    freemarker 应用,环境搭建,使用

    FreeMarker 是一个强大的模板引擎...随着对FreeMarker的深入学习,你会发现它能实现更复杂的逻辑和布局,成为强大的视图层解决方案。在实际开发中,FreeMarker常与Spring MVC等框架配合使用,实现MVC模式下的模板渲染。

    myeclipse freemarker编辑器模板插件及配置说明

    在MyEclipse中配置Freemarker模板,可以实现快速生成常见的Java Web项目中的视图层代码,如动态页面。例如,你可以为不同的页面元素(如头部、导航栏、内容区域等)创建模板,并在需要的地方插入这些模板,使得代码...

    FreeMarker 解析后缀名文件

    在Controller层,我们可以创建一个ModelAndView对象,将数据模型放入其中,然后通过FreeMarker视图解析器来渲染对应的FTL文件。 5. **模板缓存** 为了提高性能,FreeMarker支持模板缓存。一旦模板被加载并编译,就...

    struts2和freemarker整合

    2. **配置Struts2**:在`struts.xml`配置文件中指定FreeMarker作为视图解析器。 3. **模板目录**:设置项目中的FreeMarker模板文件存放位置。 4. **Action返回值**:Action类的execute方法返回一个结果字符串,对应...

    freemarker 自定义freeMarker标签

    它允许开发者使用简单的模板语言(TL)来分离业务逻辑和视图层。本篇将深入探讨如何自定义FreeMarker标签,以扩展其功能并适应特定项目需求。 首先,理解FreeMarker的默认标签语法至关重要。FreeMarker使用${...}...

    Struts2零配置+FreeMarker用户管理系统(UMS)

    在Struts2中,FreeMarker模板作为视图层,用于渲染控制器处理后传递的数据。FreeMarker模板语言简洁且强大,可以动态地将数据模型与HTML模板结合,生成最终的网页。开发者可以通过 `${}` 符号来引用数据模型中的变量...

    freemarker java模板技术 很详细的注释

    - **配置**: 创建`Configuration`对象来设定Freemarker的配置,如模板目录、编码等。 - **加载模板**: 使用`Configuration`对象加载模板文件。 - **设置数据模型**: 通过`Map`对象将Java数据绑定到模板。 - **...

    FreeMarker手册-Freemarker 2.3.18

    在Web应用中,FreeMarker常与Model-View-Controller(MVC)模式结合使用,控制器将处理业务逻辑,模型提供数据,而FreeMarker作为视图负责渲染输出。 8. **错误处理和调试** FreeMarker提供了丰富的错误处理机制...

Global site tag (gtag.js) - Google Analytics