2

我现在正在学习如何用 Java 制作一个 google appengine 应用程序,并且在他们的入门指南中,他们使用 JSP,但这似乎让我回到了我对 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>

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

4

4 回答 4

2

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

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

于 2012-04-17T19:55:26.467 回答
1

有一些很好的框架可以实现你想要的:

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

于 2012-04-17T19:39:32.713 回答
0

grails 可以很好地解决这个问题....但是使用应用程序引擎框架正确设置所有内容可能会有点痛苦

于 2012-04-17T20:07:32.810 回答
0

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

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

大量内置标签过滤器,例如:

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

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

于 2015-01-02T18:35:13.907 回答