Springmvc 整合 jetbrick 实例

应用环境: 
<jetbrick.version>1.2.8</jetbrick.version>

<antlr4-runtime.version>4.2.2</antlr4-runtime.version>

<spring.mybatis.common.version>2.0</spring.mybatis.common.version>

项目结构:
Springmvc 整合 jetbrick 实例

实例展示:

1.引如pom依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.spring.mybatis</groupId>

  <artifactId>jetbrick-mvc</artifactId>

  <packaging>war</packaging>

  <version>0.0.1-SNAPSHOT</version>

  <name>jetbrick-mvc Maven Webapp</name>

  <url>http://maven.apache.org</url>

      <properties>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <slf4j.version>1.7.7</slf4j.version>

        <junit.version>4.11</junit.version>

        <http.components.version>4.1</http.components.version>

        <commons.logging.version>1.1.3</commons.logging.version>

        <commons.codec.version>1.7</commons.codec.version>

        <jetbrick.version>1.2.8</jetbrick.version>

        <antlr4-runtime.version>4.2.2</antlr4-runtime.version>

        <servlet.version>2.4</servlet.version>

    </properties>

    <dependencies>

        

        <dependency>

            <groupId>jetbrick-template</groupId>

            <artifactId>jetbrick-template</artifactId>

            <version>${jetbrick.version}</version>

        </dependency>



        <dependency>

            <groupId>com.spring.mybatis</groupId>

            <artifactId>spring-mybatis-data-common</artifactId>

            <version>2.0</version>

            <exclusions>

                <exclusion>

                    <groupId>org.apache.geronimo.specs</groupId>

                    <artifactId>geronimo-servlet_3.0_spec</artifactId>

                </exclusion>

            </exclusions>

        </dependency>



        <dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

            <version>${junit.version}</version>

            <scope>test</scope>

        </dependency>



        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-api</artifactId>

            <version>${slf4j.version}</version>

        </dependency>

        

        <dependency>

            <groupId>org.antlr</groupId>

            <artifactId>antlr4-runtime</artifactId>

            <version>${antlr4-runtime.version}</version>

        </dependency>

        

        <dependency>

            <groupId>servlet-api</groupId>

            <artifactId>servlet-api</artifactId>

            <version>${servlet.version}</version>

        </dependency>

    </dependencies>

  <build>

    <finalName>jetbrick-mvc</finalName>

  </build>

</project>

2.添加jetbrick的监听与配置文件到web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" 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_2_5.xsd">



    <!--Spring ApplicationContext context listener -->  

    <listener>     

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

    </listener>

    

    <!-- config Spring context -->

    <context-param>  

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

         <!-- if we set "/WEB-INF/xx", here should be "/WEB-INF/applicationContext.xml" -->

        <param-value>classpath*:context/spring-context.xml</param-value>  

    </context-param>  

    

 

    <!-- Spring refresh Introspector -->  

    <listener>  

        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  

    </listener>  

  

      

      <!-- set jetbrick listener -->

    <listener>

      <listener-class>jetbrick.template.web.JetWebEngineLoader</listener-class>

    </listener>

      

      <!-- set load jetbrick-template properties -->

    <context-param>

      <param-name>jetbrick-template-config-location</param-name>

      <param-value>classpath:template/jetbrick-template.properties</param-value>

    </context-param>

    

    <!-- Spring log4j listener -->

    <listener>

        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

    </listener>

     

    <!-- set load log4j properties-->

    <context-param>

        <param-name>log4jConfigLocation</param-name>

        <param-value>classpath:property/log4j.properties</param-value>

    </context-param>

     

       <!-- character Encoding filter -->

    <filter>

        <filter-name>encodingFilter</filter-name>

        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

        <init-param>

            <param-name>encoding</param-name>

            <param-value>UTF-8</param-value>

        </init-param>

    </filter>

    <filter-mapping>

        <filter-name>encodingFilter</filter-name>

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

    </filter-mapping>

    

    

    <!-- Spring Modelv view Controller -->

    <servlet>

        <servlet-name>spring-controller</servlet-name>

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

        <init-param>

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

            <param-value>classpath*:context/spring-mvc.xml</param-value>

        </init-param>

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

    </servlet>

    <servlet-mapping>

        <servlet-name>spring-controller</servlet-name>

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

    </servlet-mapping>

    

    <!--set session timeout -->

    <session-config>

        <session-timeout>60</session-timeout>

    </session-config>



    <welcome-file-list>

        <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>

         

</web-app>

3.配置jetbrick的全局属性

import.packages = com.mvc.cmrn.dao, com.mvc.cmrn.model

#import inner define function,once import use anywhere 

import.functions = jetbrick.template.runtime.JetFunctions

#set autoscan is true

import.autoscan = true

#set autoscan package

import.autoscan.packages = com.mvc.cmrn

#set reloadable is true

template.reloadable = true

input.encoding= UTF-8

output.encoding=UTF-8

template.reloadable = true

#template.path  +  spring prefix +   VIEW + spring suffix (or?? template.suffix)

template.path=/WEB-INF/jetx/

compile.debug = true

template.loader = jetbrick.template.web.WebResourceLoader

#more config read :http://subchen.github.io/jetbrick-template/config.html

4.定义jetbrick为应用试图

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

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">



     <!-- set annotation support is true -->  

    <mvc:annotation-driven />  

    

    <!-- autoscan @Component , @Controller , @Service , @Repository ... annotation -->

    <context:component-scan base-package="com.mvc.cmrn.controller" />  

   

    <!-- load static resources -->

    <mvc:resources mapping="/scripts/**" location="/scripts/"/> 

    <mvc:resources mapping="/styles/**" location="/styles/" />

    

    

    <!-- define jdp for spring Model view <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/jetx/" /> <property name="suffix" value=".jsp" /> </bean> -->

 

    <!-- define view with jetbrick template -->

    <bean class="jetbrick.template.web.springmvc.JetTemplateViewResolver">

        <!-- 如果spring 的suffix 没有配置,会读取 template.suffix 这个不是叠加.是 覆盖(spring 的优先) -->

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

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

         <property name="order" value="9999" />

    </bean>

    

</beans>

5.springmvc操作

package com.mvc.cmrn.controller; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import com.mvc.cmrn.model.Member; import com.mvc.cmrn.service.IMemberService; import com.spring.mybatis.data.common.controller.BaseMultiController; @Controller @RequestMapping("/member") public class MemberController extends BaseMultiController{ @Autowired private IMemberService memberService; @RequestMapping(value={"/{id:\\d+}/query.baidu"},method={RequestMethod.GET,RequestMethod.POST}) public ModelAndView query(HttpServletRequest request,HttpServletResponse response,@ModelAttribute("id") Long id){ Map<String,Object> map = new HashMap<String, Object>(); Member member = this.memberService.query(id); map.put("member", member); String viewPath = "front/detail"; return toView(viewPath, map); } @RequestMapping(value={"/lists.baidu"},method={RequestMethod.GET,RequestMethod.POST}) public ModelAndView lists(HttpServletRequest request,HttpServletResponse response){ Map<String,Object> map = new HashMap<String, Object>(); List<Member> lists = this.memberService.list(); map.put("item", lists); String viewPath = "front/list"; return toView(viewPath, map); } @RequestMapping(value={"/{id:\\d+}/delete.baidu"},method={RequestMethod.GET,RequestMethod.POST}) public ModelAndView delete(HttpServletRequest request,HttpServletResponse response,@ModelAttribute("id") Long id){ Map<String,Object> map = new HashMap<String, Object>(); int result = this.memberService.delete(id); if(result>0){ map.put("message", "Delete OK"); }else{ map.put("message", "Delete Error"); } List<Member> lists = this.memberService.list(); map.put("item", lists); String viewPath = "front/list"; return toView(viewPath, map); } public IMemberService getMemberService() { return memberService; } public void setMemberService(IMemberService memberService) { this.memberService = memberService; } }
package com.mvc.cmrn.controller; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import com.mvc.cmrn.model.Member; import com.mvc.cmrn.service.IMemberService; import com.spring.mybatis.data.common.controller.BaseMultiController; @Controller @RequestMapping("/member") public class MemberController extends BaseMultiController{ @Autowired private IMemberService memberService; @RequestMapping(value={"/{id:\\d+}/query.baidu"},method={RequestMethod.GET,RequestMethod.POST}) public ModelAndView query(HttpServletRequest request,HttpServletResponse response,@ModelAttribute("id") Long id){ Map<String,Object> map = new HashMap<String, Object>(); Member member = this.memberService.query(id); map.put("member", member); String viewPath = "front/detail"; return toView(viewPath, map); } @RequestMapping(value={"/lists.baidu"},method={RequestMethod.GET,RequestMethod.POST}) public ModelAndView lists(HttpServletRequest request,HttpServletResponse response){ Map<String,Object> map = new HashMap<String, Object>(); List<Member> lists = this.memberService.list(); map.put("item", lists); String viewPath = "front/list"; return toView(viewPath, map); } @RequestMapping(value={"/{id:\\d+}/delete.baidu"},method={RequestMethod.GET,RequestMethod.POST}) public ModelAndView delete(HttpServletRequest request,HttpServletResponse response,@ModelAttribute("id") Long id){ Map<String,Object> map = new HashMap<String, Object>(); int result = this.memberService.delete(id); if(result>0){ map.put("message", "Delete OK"); }else{ map.put("message", "Delete Error"); } List<Member> lists = this.memberService.list(); map.put("item", lists); String viewPath = "front/list"; return toView(viewPath, map); } public IMemberService getMemberService() { return memberService; } public void setMemberService(IMemberService memberService) { this.memberService = memberService; } }

6.获取应用路径

在全局属性配置文件jetbrick-template.properties中引入的jetbrick模板中自定义的函数.通过函数webroot()获取路径.

<table border="1" width="600">

  <tr>

        <td>ID</td>

        <td>姓名</td>

        <td>邮箱</td>

        <td>查看</td>

        <td>删除</td>

  </tr> #for(Member member: item) <tr>

        <td>${user.id}</td>

        <td>${user.name}</td>

        <td>${user.email}</td>

        <td><a href="${webroot()}/member/${user.id}/query.baidu">查看</a></td>

        <td><a href="${webroot()}/member/${user.id}/delete.baidu">删除</a></td>

  </tr> #end </table>

语法说明: http://subchen.github.io/jetbrick-template/syntax.html
实例下载: http://files.cnblogs.com/dennisit/springmvc-jetbrick-demo.7z
转载请注明出处:[http://www.cnblogs.com/dennisit/p/3812456.html]

你可能感兴趣的:(springMVC)