zoukankan      html  css  js  c++  java
  • 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 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]

  • 相关阅读:
    Jmeter连接数据库并使用数据表数据作为接口所需参数
    使用CSV Data Set Config配置原件,参数化数据
    Jmeter连接SqlServer数据库并操作
    jmeter导入jmx文件报错:missing class com.thoughtworks.xstream.converters.ConversionException
    jmeter请求参数的两种方式
    badboy录制,出现弹框提示脚本错误解决方法
    (三)LoadRunner术语认识
    (二)LoadRunner目录分析
    7z命令
    python复制多层目录下的文件至其他盘符对应的目录中
  • 原文地址:https://www.cnblogs.com/dennisit/p/3812456.html
Copyright © 2011-2022 走看看