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]
Springmvc 整合 jetbrick 实例的更多相关文章
- SpringMVC整合FreeMarker实例
FreeMarker作为模板引擎,是比较常用的. FreeMarker官方文档地址为:https://freemarker.apache.org/ 现在浏览器或者翻译工具这么多,对于英文方面,我想大多 ...
- springmvc整合redis架构搭建实例
新换环境,又有新东西可以学习了,哈皮! 抽空学习之余看了一下redis,个人对Springmvc的爱是忠贞不渝,所以整理了一下Springmvc整合redis的环境搭建.分享学习. 第一步: 创建ma ...
- SpringMVC系列(十五)Spring MVC与Spring整合时实例被创建两次的解决方案以及Spring 的 IOC 容器和 SpringMVC 的 IOC 容器的关系
一.Spring MVC与Spring整合时实例被创建两次的解决方案 1.问题产生的原因 Spring MVC的配置文件和Spring的配置文件里面都使用了扫描注解<context:compon ...
- SpringMVC整合Shiro——(3)
SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能. 第一步:配置web.xml <!-- 配置Shiro过滤器,先让Shiro ...
- springMVC整合xStream
一. 简单介绍: xStream能够轻易的将Java对象转换成xml.JSON.本篇博客将使用springMVC整合利用xStream转换xml. 关于xStream使用的博文:http://blog ...
- springMVC -- 整合UEditor(富文本编辑器)
工作中需要用到UEditor编辑文本,在与springMVC进行整合时,出现了一些问题,结果导致,在进行图片上传时出现如下提示: 上网查询了很多相关资料,此处简要记录下,防止以后遇到类似问题. 一种方 ...
- 六:Dubbo与Zookeeper、SpringMvc整合和使用
DUBBO与ZOOKEEPER.SPRINGMVC整合和使用 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架 ...
- eclipse 创建maven 项目 动态web工程完整示例 maven 整合springmvc整合mybatis
接上一篇: eclipse 创建maven 项目 动态web工程完整示例 eclipse maven工程自动添加依赖设置 maven工程可以在线搜索依赖的jar包,还是非常方便的 但是有的时候可能还需 ...
- SpringMVC整合Mongodb开发,高级操作
开发环境: 操作系统:windows xpMongodb:2.0.6依 赖 包:Spring3.2.2 + spring-data-mongodb-1.3.0 + Spring-data-1.5 + ...
随机推荐
- SpringBank 开发日志 Mybatis 使用redis 作为二级缓存时,无法通过cacheEnabled=false 将其关闭
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...
- day5模块学习--re正则模块
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
- BZOJ1786 [Ahoi2008]Pair 配对 动态规划 逆序对
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1786 题意概括 给出长度为n的数列,只会出现1~k这些正整数.现在有些数写成了-1,这些-1可以变 ...
- P1541 乌龟棋 线性dp
题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行NN个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第NN格是终点,游戏要求玩家控制一个乌龟棋子 ...
- 练习题|python常用模块
re模块练习 1.验证手机号是否合法 import re phone_pat = re.compile('^(13\d|14[5|7]\d|15\d|166|17[3|6|7]|18\d)\d{8}$ ...
- Python打包方法——Pyinstaller (转)
Python版本:Python3.5.2 一.安装Pyinstaller 1.安装pywin32 下载安装文件:查找到跟自己适用的python版本及window系统版本匹配的pywin32,下载后 ...
- java反射修改final变量
private void updateFinalModifiers(Field field) throws NoSuchFieldException, IllegalAccessException { ...
- 【*】CAS 是什么,Java8是如何优化 CAS 的
文章结构 前言 想要读懂 Java 中的并发包,就是要先读懂 CAS 机制,因为 CAS 是并发包的底层实现原理.本文主要讨论 CAS 是如何保证操作的原子性的 Java8 对 CAS 进行了哪些 ...
- Node+Express+MongoDB+Socket.io搭建实时聊天应用实战教程(一)--MongoDB入门
前言 本文并不是网上流传的多少天学会MongoDB那种全面的教程,而意在总结这几天使用MongoDB的心得,给出一个完整的Node+Express+MongoDB+Socket.io搭建实时聊天应用实 ...
- HDU.4757.Tree(可持久化Trie)
题目链接 \(Description\) 给定一棵树,点有点权.\(Q\)次询问\(x,y,z\),求\(x\)到\(y\)的简单路径中,与\(z\)异或能得到的最大的数是多少. \(Solution ...