应用环境: 
<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]

Springmvc 整合 jetbrick 实例的更多相关文章

  1. SpringMVC整合FreeMarker实例

    FreeMarker作为模板引擎,是比较常用的. FreeMarker官方文档地址为:https://freemarker.apache.org/ 现在浏览器或者翻译工具这么多,对于英文方面,我想大多 ...

  2. springmvc整合redis架构搭建实例

    新换环境,又有新东西可以学习了,哈皮! 抽空学习之余看了一下redis,个人对Springmvc的爱是忠贞不渝,所以整理了一下Springmvc整合redis的环境搭建.分享学习. 第一步: 创建ma ...

  3. SpringMVC系列(十五)Spring MVC与Spring整合时实例被创建两次的解决方案以及Spring 的 IOC 容器和 SpringMVC 的 IOC 容器的关系

    一.Spring MVC与Spring整合时实例被创建两次的解决方案 1.问题产生的原因 Spring MVC的配置文件和Spring的配置文件里面都使用了扫描注解<context:compon ...

  4. SpringMVC整合Shiro——(3)

    SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能. 第一步:配置web.xml <!-- 配置Shiro过滤器,先让Shiro ...

  5. springMVC整合xStream

    一. 简单介绍: xStream能够轻易的将Java对象转换成xml.JSON.本篇博客将使用springMVC整合利用xStream转换xml. 关于xStream使用的博文:http://blog ...

  6. springMVC -- 整合UEditor(富文本编辑器)

    工作中需要用到UEditor编辑文本,在与springMVC进行整合时,出现了一些问题,结果导致,在进行图片上传时出现如下提示: 上网查询了很多相关资料,此处简要记录下,防止以后遇到类似问题. 一种方 ...

  7. 六:Dubbo与Zookeeper、SpringMvc整合和使用

    DUBBO与ZOOKEEPER.SPRINGMVC整合和使用 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架 ...

  8. eclipse 创建maven 项目 动态web工程完整示例 maven 整合springmvc整合mybatis

    接上一篇: eclipse 创建maven 项目 动态web工程完整示例 eclipse maven工程自动添加依赖设置 maven工程可以在线搜索依赖的jar包,还是非常方便的 但是有的时候可能还需 ...

  9. SpringMVC整合Mongodb开发,高级操作

    开发环境: 操作系统:windows xpMongodb:2.0.6依 赖 包:Spring3.2.2 + spring-data-mongodb-1.3.0 + Spring-data-1.5 +  ...

随机推荐

  1. CentOS安装redis-audit 但执行时出错未解决 记录一下安装过程

    网上很多安装过程都太老了,测试很多方法终于成功了,但执行时还是出错,哪位熟悉的可以告知一下. yum install -y ruby rubygems ruby-devel git gcc gem s ...

  2. Go 语言 IDE 之 VSCode 配置使用

    Gogland 是 JetBrains 公司推出的 Go 语言集成开发环境.Gogland 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系.官方:https://www.j ...

  3. jquery数组(sort() 排序)

    HTML: <h3>字符串数组排序前</h3> <div id="show5"></div> <h3>排序后</h ...

  4. 031 分布式中,zookeeper的部署

    一:准备 1.概述 为分布式应用提供协调服务的项目 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 类似于文件系统那样的树形数据结构 目的:将分布式服务不再由于协作冲突而 ...

  5. ACM题目中的时间限制与内存限制 复杂度的估计

    运行时限为1s,这很常见,对于该时限,我们设计的算法复杂度不能超过百万级别,即不要超过一千万.假如你的算法时间复杂度为O(n^2),则n不应该大于3000 空间限制是32MB,即你程序中申请的内存不能 ...

  6. 《Android进阶之光》--Dagger2

    No1: Project的build.gradle文件添加 buildscript{ dependencies{ ...classpath 'com.neenbedankt.gradle.plugin ...

  7. P2031 脑力达人之分割字串

    P2031 脑力达人之分割字串字符串dp,f[i]表示主串到第i个字符,最多能分割成多少子串.f[i]=max(f[i],f[k]+1);k是能匹配到的前一位. #include<iostrea ...

  8. P1862输油管道问题

    P1862输油管道问题. . . . .-----------------. . . . . .图像大体是这样,是带权平均数问题,设答案是k,sigama(abs(yi-k*wi))最小,这里的wi是 ...

  9. Mongodb - 二进制安装

    0.概述 mongodb版本:4.0.2 linux版本:redhat 6.5 安装方式:二进制安装 1.关闭防火墙 /etc/init.d/iptables status/etc/init.d/ip ...

  10. 小程序使用 rpx 单位 转 px的方法(用于动画、canvas画图)

    1.需要借助的API:wx.getSystemInfoSync(); 通过API可获取的值: // 在 iPhone6 下运行: var systemInfo = wx.getSystemInfoSy ...