如何证明single casee design什么统计方法

&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!JAVA velocity模板引擎使用实例
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了JAVA velocity模板引擎使用实例,需要的朋友可以参考下
velocity使用1.7版本。 在win7下使用intelliJ IDEA建立一基于tomcat的web app项目,命名为todo_web,设置path为/todo,导入velocity相关jar包。只导入velocity-1.7.jar这个包可能会报错,根据提示再导入velocity自带的其他包。 项目结构如下:
测试Tomcat
index.jsp内容如下: 代码如下:&%-- Created by IntelliJ IDEA. --%&&%@ page contentType="text/charset=UTF-8" language="java" %&&html&& &head&&&& &title&&/title&& &/head&& &body&&&&&&&&&&& &%&&&&&&&&&&&&&& out.print("hi,todo");&&&&&&&&&& %&& &/body&&/html&HelloWorld.java内容如下: 代码如下:import java.io.*;import javax.servlet.*;import javax.servlet.http.*;&&& public class HelloWorld extends HttpServlet {&&& /**&&&& *&&&& * @param request&&&& * @param response&&&& * @throws IOException&&&& * @throws ServletException&&&& */&&& @Override&&& public void doGet(HttpServletRequest request, HttpServletResponse response)&&&&&&&&&&& throws IOException, ServletException {&&&&&&& response.setContentType("text/html");&&&&&&& PrintWriter out = response.getWriter();&&&&&&& out.println("&html&");&&&&&&& out.println("&head&");&&&&&&& out.println("&title&Hi!&/title&");&&&&&&& out.println("&/head&");&&&&&&& out.println("&body&");&&&&&&& out.println("&h1&Hello World!!!&/h1&");&&&&&&& out.println("&/body&");&&&&&&& out.println("&/html&");&&& }}在web.xml中加入以下内容: 代码如下:&servlet&&&& &servlet-name&hi&/servlet-name&&&& &servlet-class&HelloWorld&/servlet-class&&/servlet&&servlet-mapping&&&& &servlet-name&hi&/servlet-name&&&& &url-pattern&/hi&/url-pattern&&/servlet-mapping&运行项目,在http://localhost:8080/todo和http://localhost:8080/todo/hi中可以看到效果。
使用velocity
下面开始使用velocity模板引擎,在src下建立目录templates,在templates目录下建立文件test.vm,内容如下: 代码如下:&html&&head&&meta http-equiv="Content-Type" content="text/ charset=utf-8"&&/head&&body&#set( $this = "Velocity")$this is great!& &br/&$name& &br/&hi& , i am letian&h1&你好&/h1&&/body&&/html&在src目录下新建java文件MyVelocity01.java: 代码如下:import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import org.apache.velocity.app.Vimport org.apache.velocity.app.VelocityEimport org.apache.velocity.VelocityCimport java.util.Ppublic class MyVelocity01 extends HttpServlet {&&& @Override&&& public void doGet(HttpServletRequest request, HttpServletResponse response)&&&&&&&&&&& throws IOException, ServletException {&&&&&&& request.setCharacterEncoding("UTF-8");&&&&&&& response.setContentType("text/charset=UTF-8"); &&&&&&& PrintWriter out = response.getWriter(); &&&&&&& Properties properties=new Properties();&&&&&&& properties.setProperty("resource.loader", "class");&&&&&&& properties.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");&&&&&&& //properties.setProperty("input.encoding", "UTF-8");&&&&&&& //properties.setProperty("output.encoding", "UTF-8");&&&&&&& properties.setProperty(Velocity.ENCODING_DEFAULT, "UTF-8");&&&&&&& properties.setProperty(Velocity.INPUT_ENCODING, "UTF-8");&&&&&&& properties.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8");&&&&&&& VelocityEngine velocityEngine = new VelocityEngine(properties);&&&&&&& VelocityContext context=new VelocityContext();&&&&&&& context.put("name", "test");&&&&&&& StringWriter sw = new StringWriter();&&&&&&& velocityEngine.mergeTemplate("templates/test.vm", "utf-8", context, sw);&&&&&&& //velocityEngine.mergeTemplate("templates/test.vm", "utf-8", context, sw);&&&&& //这样就会出现两次&&&&&&& out.println(sw.toString());&&& }}
配置web.xml: 代码如下:&!--MyVelocity--&&servlet&&&& &servlet-name&ve&/servlet-name&&&& &servlet-class&MyVelocity01&/servlet-class&&/servlet&&servlet-mapping&&&& &servlet-name&ve&/servlet-name&&&& &url-pattern&/ve&/url-pattern&&/servlet-mapping&重新部署,浏览器访问可以看到效果。
简单介绍velocity
velocity是一个基于java的模板引擎,有三种文件加载模板方式: 1、从文件路径加载 2、从类路径(MyVelocity01.java使用该方法) 3、从jar文件加载 开始接触velocity时可能会在加载模板上遇到问题。
如何向模板文件传递变量: 模板本身可以定义变量,例如在test.vm中定义了变量$this,java代码也可以给模板传递变量,例如test.vm中的变量$name便是VelocityContext实例传递过去的。同时velocity也支持迭代对象,例如: 我们在MyVelocity01.java中导入java.util.Vector,将代码: 代码如下:context.put("name", "test");改为: 代码如下:Vector v = new Vector();& v.addElement("Harry");& v.addElement("John");& String[] names = {"Harry", "John"};context.put("names1", v);context.put("names2", names);将test.vm内容改为: 代码如下:&h1&hello&/h1&#foreach($name in $names1)&&& $name&& &br/&#end#foreach($name in $names2)&&& $name&& &br/&#endvelocity还支持map容器,支持使用#include("")引入静态模板,#parse("模板名")引入动态模板。
如果想不开要用java MVC写网站的话,使用servlet + velocity是一个小巧灵活的选择。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
如题啊?强迫症看着报错很不舒服
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
Webstorm 没有对应的Velocity的插件,日常开发中我一般把vm文件使用HTML打开。对应的IDEA包含该插件。如果是Java开发的话,可以使用IDEA。如果强迫症更严重一点,可以尝试自己写个插件。希望对你有所帮助。
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App
SegmentFault
一起探索更多未知本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 single case 的文章

 

随机推荐