首页 > 代码库 > Springmvc 整合 jetbrick 实例

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>

项目结构:

实例展示:

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 trueimport.autoscan = true#set autoscan packageimport.autoscan.packages = com.mvc.cmrn#set reloadable is truetemplate.reloadable = trueinput.encoding= UTF-8output.encoding=UTF-8template.reloadable = true#template.path  +  spring prefix +   VIEW + spring suffix (or?? template.suffix)template.path=/WEB-INF/jetx/compile.debug = truetemplate.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="http://www.mamicode.com/org.springframework.web.servlet.view.JstlView" />             <property name="prefix" value="http://www.mamicode.com/WEB-INF/jetx/" />        <property name="suffix" value="http://www.mamicode.com/.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]