首页 > 代码库 > 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]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。