war/WEB-INF/libにコピーしたライブラリVelocity-1.7-dep.jarをプロジェクトに追加。
control.java
- protected void doGet(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- user user1 = new user(0, "ユーザ1", 176, 85);
- user user2 = new user(1, "ユーザ2", 185, 120);
- user user3 = new user(2, "ユーザ3", 168, 72);
- LinkedList group = new LinkedList();
- group.add(user1);
- group.add(user2);
- group.add(user3);
- Velocity.init();
- VelocityContext vc = new VelocityContext();
- vc.put("group", group);
- StringWriter sw = new StringWriter();
- Template template = Velocity.getTemplate("/admin/velocity/foreach.vm", "UTF-8");
- template.merge(vc, sw);
- System.out.println(sw);
- resp.setCharacterEncoding("UTF-8");
- resp.setContentType("text/html; charset=UTF-8");
- resp.getWriter().print(sw);
- }
web.xml
- <servlet>
- <servlet-name>control</servlet-name>
- <servlet-class>scoreman.control</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>control</servlet-name>
- <url-pattern>/admin/control</url-pattern>
- </servlet-mapping>
war/admin/velocity/foreach.vm
- <html>
- <body>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <h1>Velocity</h1>
- 表示のテストです
- #easyMacro($group)
- </body>
- </html>
- #macro(easyMacro $group)
- #foreach($human in $group)
- $velocityCount : $human.name
- #end
- #end
参考サイトでは文字化け対策でpropertyファイルをコピーしてたりしてたけど、今のところこれでも問題ないのでこれでいきますかな。
表示画面