我希望在Servlets中使用模板引擎。具体的模板引擎实现应该可以在TemplateEngine接口后面进行更改。通过常规的依赖注入,可能看起来像这样:
public abstract class BaseServlet extends HttpServlet {
private TemplateEngine templateEngine;
public void setTemplateEngine(TemplateEngine te) {
templateEngine = te;
}
protected void render(Result result, HttpServletResponse response) {
templateEngine.render(result, resonse);
}
}
这种方法的缺点是每个想要使用render方法的Servlet都必须扩展BaseServlet。因此,我希望有一个静态导入的render方法。
public class TemplateEngineWrapper {
@Inject
static TemplateEngine templateEngine;
public static void render(Result result, HttpServletResponse response) {
templateEngine.render(result, resonse);
}
}
在Servlet中,我会这样使用它:
import static TemplateEngineWrapper.render;
...
public void doGet(...) {
render(new Result(200, "Everything is fine."), response);
}
...
这种方法有问题吗?如果有,你会建议使用什么方法代替?