您的位置:首页 > 其它

velocity基本使用

2015-04-24 17:18 253 查看
1、 controller

package com.csst.app.web.controller;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.runtime.VelocimacroManager;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.ui.velocity.VelocityEngineUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.csst.app.test.User;

@Controller
@RequestMapping(value="/velocity")
public class HelloController {

@RequestMapping(value="/say")
public void say(HttpServletRequest request, HttpServletResponse response)throws Exception{

String path=request.getContextPath();

Properties p=new Properties();
p.setProperty(VelocityEngine.FILE_RESOURCE_LOADER_PATH, "D:/apache-tomcat-7/webapps/springMvc/templates/");
p.setProperty(Velocity.INPUT_ENCODING, "UTF-8");
p.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8");

String url="index.vm";
Velocity.init(p);
VelocityContext context=new VelocityContext();
//
User user=new User();
user.setUser("dehua.cao");
user.setPass("123456789");

Map<String, Object> map=new HashMap<String, Object>();
map.put("index", 100);
map.put("count", 200);

List<String> list=new ArrayList<String>();
list.add("1");
list.add("2");

context.put("user", user);
context.put("list", map);
context.put("status", true);

Template template=Velocity.getTemplate(url, "UTF-8");
StringWriter writer=new StringWriter();
template.merge(context, writer);

//			response.setCharacterEncoding("UTF-8");
PrintWriter out=response.getWriter();
out.print(writer.toString());
out.flush();
out.close();

}
}


2、spring-servlet.xml

<?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.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd"> 
<!-- 注解请求映射-->
<mvc:annotation-driven />

<!-- 自动扫描包名 -->
<context:component-scan base-package="com.csst.app.dao.impl" />
<context:component-scan base-package="com.csst.app.service.impl"/>
<context:component-scan base-package="com.csst.app.web"/>

<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>

<!-- jsp页面解析器 -->
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/jsp" />
<property name="suffix" value=".jsp" />
</bean>

<!-- 配置velocity引擎 -->
<bean id="velocityConfigurer"
class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/templates/" />
</bean>

<!-- 配置veloctiy渲染 -->
<bean id="ViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">
<property name="cache"  value="true"/>
<property name="prefix" value="/templates" />
<property name="suffix" value=".vm" />
</bean>

<!-- sesion超时处理  -->
<!--
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/*/*"/>
<mvc:exclude-mapping path="/index/*"/>
<bean class="com.csst.app.interceptor.SessionInterceptor">
<property name="allUrl">
<list>
<value>/js/</value>
<value>/css/</value>
<value>/images/</value>
</list>
</property>
</bean>
</mvc:interceptor>
</mvc:interceptors>
-->

<!-- 异常文件处理 -->
<!--
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="error"></property>
<property name="exceptionAttribute" value="ex"></property>
<property name="exceptionMappings">
<props>
<prop key="com.csst.app.exception.BusinessException">
error
</prop>
</props>
</property>
</bean>
-->
<!-- 访问静态文件 -->
<!--
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/images/" mapping="/images/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
-->

<!-- 线程池基本配置 -->
<!--
<bean  id ="taskExecutor"  class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name ="corePoolSize" value ="5" />
<property name ="keepAliveSeconds" value ="300" />
<property name ="maxPoolSize" value ="10" />
<property name ="queueCapacity" value ="25" />
</bean>

<bean id="testTaskExecutor" class="com.csst.app.test.TestTaskExecutor">
<constructor-arg ref="taskExecutor"/>
</bean>
-->

</beans>


3、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-servlet.xml
</param-value>
</context-param>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<filter>
<filter-name>CharacterEncodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-servlet.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
</web-app>


4、velocity templates

index.vm

<HTML>
<HEAD>
</HEAD>
<BODY >

<div >
#include("top.vm")

#set($index=0)
<span >
$user.user, $user.pass
</span>
#foreach($data in $list)
<p >
$data
</p>
#end

#if($status)
<img src="../images/logo.gif" alt="" />
#else
<img src="../images/logo.gif" alt="" />
#end
<BR />

#if($index==0)
<DIV >
中国伟大
</DIV>
#end
#include("bottom.vm")
</div>

</BODY>
</HTML>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: