您的位置:首页 > 编程语言 > Java开发

spring mvc+freemarker 简单环境的搭建

2012-10-10 21:26 453 查看
1 首先用IDE建一个web工程。(这个就不详细介绍了)

2 引入响应的jar包

3 一切web工程的配置都从web.xml开始,现在就看下web.xml都要配置啥

Java代码



<?xml version="1.0" ?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">

<!-- Spring 服务层的配置文件 -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

<!-- Spring 容器启动监听器 -->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

<servlet>

<servlet-name>springmvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet

</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<!--为DispatcherServlet建立映射 -->

<servlet-mapping>

<servlet-name>springmvc</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

</web-app>

4 SpringMVC另外一个重要的配置文件。

DispatcherServlet会根绝web.xml中配置的<servlet-name>去找<servlet-name>-servlet.xml的文件来加载spring的一些配置信息。我这里就应该取名叫springmvc-servlet.xml

Java代码



<?xml version="1.0" encoding="UTF-8"?>

<beans

xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<!--对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->

<context:component-scan base-package="com.liba.spring.mvc"/>

<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 请求映射-->

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

<!--以下三种视图配置根据需要任选一种即可 -->

<!-- 一般的视图配置 -->

<!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"

p:prefix="/WEB-INF/view/" p:suffix=".jsp"/>-->

<!-- 针对freemarker的视图配置 -->

<bean id="viewResolver"

class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">

<property name="cache" value="true" />

<property name="prefix" value="" />

<property name="suffix" value=".ftl" />

<property name="contentType" value="text/html;charset=UTF-8"></property>

<property name="requestContextAttribute" value="request" />

<property name="exposeSpringMacroHelpers" value="true" />

<property name="exposeRequestAttributes" value="true" />

<property name="exposeSessionAttributes" value="true" />

</bean>

<!-- View resolvers can also be configured with ResourceBundles or XML files.

If you need different view resolving based on Locale, you have to use the

resource bundle resolver. -->

<!-- 这个是针对返回视图还是json值的视图配置 来分别处理同步和异步请求 -->

<!--<bean

class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">

<property name="mediaTypes">

<map>

<entry key="html" value="text/html" />

<entry key="json" value="application/json" />

</map>

</property>

<property name="favorParameter" value="true" />

<property name="viewResolvers">

<list>

<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />

<bean id="viewResolver"

class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">

<property name="cache" value="true" />

<property name="prefix" value="" />

<property name="suffix" value=".ftl" />

<property name="contentType" value="text/html;charset=UTF-8"></property>

<property name="requestContextAttribute" value="request" />

<property name="exposeSpringMacroHelpers" value="true" />

<property name="exposeRequestAttributes" value="true" />

<property name="exposeSessionAttributes" value="true" />

</bean>

</list>

</property>

<property name="defaultContentType" value="text/html" />

</bean>

-->

</beans>

如果是使用freemarker最为视图模板需要再spring的配置文件applicationContext.xml中加入以下配置

Java代码



<bean id="freemarkerConfig"

class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">

<property name="templateLoaderPath" value="/WEB-INF/view/" />

<property name="freemarkerSettings">

<props>

<prop key="template_update_delay">0</prop>

<prop key="default_encoding">UTF-8</prop>

<prop key="number_format">0.##########</prop>

<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>

<prop key="classic_compatible">true</prop>

<prop key="template_exception_handler">ignore</prop>

</props>

</property>

</bean>

5
Controller建立

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.servlet.ModelAndView;

@Controller

public class SpringMvcController {

@RequestMapping(value="/welcome",method={RequestMethod.GET})

public ModelAndView getFirstPage(HttpServletRequest request) {

//welcom就是视图的名称(welcom.ftl)

ModelAndView mv = new ModelAndView("welcom");

mv.addObject("name", "My First Spring Mvc");

return mv;

}

}

freemarker
标签貌似要通过spring mvc渲染之后,传回到页面才能解析。这样就可以简单实现页面的半自动静态化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: