如何在java appengine中将代码与html分开?

时间:2012-04-17 19:22:36

标签: java google-app-engine jsp view

我现在正在学习如何使用Java制作Google appengine应用程序,并且在他们的入门指南中,他们使用了JSP,但这似乎又回到了我过去的时光。 #39;对MVC或关注点分离一无所知。

我不想将代码放在模板中,而是宁愿使用类似于django模板或jinja的东西,就像你在python sdk中那样。什么是最好的框架?

我按照入门指南中的留言板示例进行操作,他们告诉您制作这样的JSP:

<html>
   <body>

<%
    UserService userService = UserServiceFactory.getUserService();
    User user = userService.getCurrentUser();
    if (user != null) {
%>
<p>Hello, <%= user.getNickname() %>! (You can
<a href="<%= userService.createLogoutURL(request.getRequestURI()) %>">sign out</a>.)</p>
<%
    } else {
%>
<p>Hello!
<a href="<%= userService.createLoginURL(request.getRequestURI()) %>">Sign in</a>
to include your name with greetings you post.</p>
<%
    }
%>

  </body>
</html>

但所有<%%>提醒我在PHP页面中包含PHP代码,这不是我想要的方式。有没有办法让我可以创建一个视图对象,传递一些值,将它们插入到模板中?

4 个答案:

答案 0 :(得分:2)

根据Google App Engine Wiki,支持JSP + JSTL,因此根本不需要Scriptlets。

如果您想要一个干净的MVC架构,也许您应该使用支持该模式的框架。 wiki说 Struts 支持它,还有 Spring MVC ,所以你可以选择一个适合你需要的那个。

答案 1 :(得分:1)

有一些很好的框架可以达到你想要的效果:

正如Thomas所说,我可能会使用像Backbone这样的好的js框架和REST

答案 2 :(得分:0)

grails在这方面运作良好....但是使用app引擎框架正确设置所有内容可能会有点痛苦

答案 3 :(得分:0)

我的轻量级模板引擎Chunk Templates将在Google App Engine中运行。

块功能包括,分支,循环和宏,具有简单的{$tag}语法,并且故意不允许内联java,如jsp do(ick)。它与twig / jinja / django / etc类似。

还有很多内置的tag filters,例如:

{% $value|sprintf(%.02f) %}
{% $value|trim %}
{% $value|onempty("N/A") %}

示例/配方WAR在App Engine中部署:http://chunk-docs.appspot.com/