<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    paulwong

    基于注解的SpringMVC+freemarker環境搭建

    1. 首先用IDE建一個web工程。(這個就不詳細介紹了)
    2. 引入響應的jar包
    3. web.xml
      <?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
      <?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>

    5. 如果是使用freemarker最為視圖模板需要再spring的配置文件applicationContext.xml中加入以下配置
      <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>

    6. 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;
          }

      }
      在url上敲http://localhost:8080/welcome就會到WEB-INF/view/welcom.ftl頁面渲染數據
    7. welcom.ftl頁面
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
      <title>Insert title here</title>
      </head>
      <body>
      Hello ${name}
      </body>
      </html>

      頁面出來的效果:

      Hello My First Spring Mvc








    posted on 2012-03-19 21:32 paulwong 閱讀(25883) 評論(3)  編輯  收藏 所屬分類: SPRING MVC

    Feedback

    # re: 基于注解的SpringMVC+freemarker環境搭建 2013-06-14 16:43 zhanghd

    <!-- 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>


    這會導致spring容器啟動兩次, 建議只配置DispatcherServlet  回復  更多評論   

    # re: 基于注解的SpringMVC+freemarker環境搭建 2014-05-09 22:47 zuidaima

    springmvc+freemarker的簡單demo http://www.zuidaima.com/share/1550463645682688.htm  回復  更多評論   

    # re: 基于注解的SpringMVC+freemarker環境搭建[未登錄] 2014-07-16 15:52 xx

    很棒  回復  更多評論   


    主站蜘蛛池模板: 亚洲无线电影官网| 国产高清在线精品免费软件| 国产最新凸凹视频免费| 亚洲综合无码AV一区二区| 亚洲av日韩av永久在线观看 | 亚洲一区二区三区在线观看网站| 福利片免费一区二区三区| 久草在视频免费福利| 亚洲成A人片在线观看无码不卡 | 亚洲第一区二区快射影院| 一级中文字幕乱码免费| 亚洲高清无码在线观看| 亚洲国产成人久久精品大牛影视| 无码中文字幕av免费放dvd| 不卡精品国产_亚洲人成在线| 久久精品亚洲日本波多野结衣 | 亚洲精品专区在线观看| 亚洲中文字幕AV每天更新| 成人毛片免费观看视频在线| 亚洲视频在线观看免费视频| 精品福利一区二区三区免费视频| 久久久久久a亚洲欧洲AV| 久久国产色AV免费看| 亚洲男人电影天堂| 免费看国产成年无码AV片| 亚洲真人无码永久在线观看| 尤物永久免费AV无码网站| 美女隐私免费视频看| 亚洲日韩乱码中文无码蜜桃臀网站| 在线播放免费人成视频网站| 亚洲福利精品一区二区三区| 精品久久久久久国产免费了| 亚洲日韩乱码久久久久久| 四虎影视大全免费入口| 中文有码亚洲制服av片| 国产成人在线观看免费网站 | 91亚洲国产成人久久精品网址| aa级女人大片喷水视频免费| 亚洲日韩欧洲无码av夜夜摸| 一级中文字幕免费乱码专区 | 日韩毛片一区视频免费|