<dependency>
<groupId>org.scalatra.scalate</groupId>
<artifactId>scalate-core_${scala.version}</artifactId>
<version>1.11.0</version>
</dependency>
html
<%@ val name: String %>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Hello ${name}!</h1>
</body>
</html>
import org.fusesource.scalate.TemplateEngine;
import scala.collection.mutable.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.Writer;
public class DynamicPageGenerator {
public void generateDynamicPage(HttpServletRequest request, HttpServletResponse response) {
try {
TemplateEngine engine = new TemplateEngine();
engine.layout(templatePath, new HashMap<String, Object>(), new HashMap<String, Object>(), new Writer(response.getWriter()) {
public void write(char[] cbuf, int off, int len) {
try {
response.getWriter().write(cbuf, off, len);
} catch (IOException e) {
}
}
public void flush() {
try {
response.getWriter().flush();
} catch (IOException e) {
}
}
public void close() {
try {
response.getWriter().close();
} catch (IOException e) {
}
}
});
} catch (Exception e) {
}
}
}
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "DynamicPageServlet", urlPatterns = "/dynamic")
public class DynamicPageServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
DynamicPageGenerator generator = new DynamicPageGenerator();
generator.generateDynamicPage(request, response);
}
}