[Java] Velocity. 스프링에 적용
pom.xml에서
<!-- Velocity. -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>2.0</version>
</dependency>
Java단에서는
VelocityEngine velocityEngine = new VelocityEngine();
// 이 부분이 중요하다..
velocityEngine.setApplicationAttribute("javax.servlet.ServletContext",
request.getSession().getServletContext());
Properties properties = new Properties();
properties.setProperty("resource.loader", "webapp");
properties.setProperty("webapp.resource.loader.class",
"org.apache.velocity.tools.view.WebappResourceLoader");
properties.setProperty("webapp.resource.loader.path", TEMPLATE_LOCATION);
velocityEngine.init(properties);
VelocityContext velocityContext = new VelocityContext();
velocityContext.put("mail_name", vo.getCompany_name());
velocityContext.put("mail_content", vo.getReply_content());
StringWriter stringWriter = new StringWriter();
// 메일 템플릿 저장된 곳에서 파일을 가져온다.
Template template = velocityEngine.getTemplate(File.separator + MAIL_TEMPLATE,"UTF-8");
template.merge(velocityContext, stringWriter);
logger.info(" template = " + stringWriter.toString());
properties에서는
#Velocity.
velocity.template=/resources/templates/velocity
mail.template=메일.html
템플릿 html저장 위치는
템플릿 html은
</HEAD>
<BODY>
안녕하십니까, $mail_name 님.
$mail_content
</BODY>
</HTML>