2012-04-17 48 views
2

我正在学习如何在Java中创建一个google appengine应用程序,并且在他们的入门指南中,他们使用JSP,但是这似乎让我回到了过去的日子,当时我对MVC一无所知或关注点分离。如何从java appengine中的HTML中分离代码?

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

我以下的入门指南,在那里他们会告诉你在留言簿eexample做一个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> 

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

+0

取决于你与你的JSP做什么。您可以让JSP处理REST调用,并根据返回的数据使用JavaScript库来处理视图。 – Thomas 2012-04-17 19:25:21

+0

在这一点上,我只是遵循留言板的例子,它在HTML中输出用户的名字。 – bigblind 2012-04-17 19:28:56

+0

有一个[django示例](http://code.google.com/p/google-app-engine-samples/source/browse/trunk/django_example/),但我不确定它是否像您一样复杂,希望。 – Fuhrmanator 2012-04-17 19:42:48

回答

2

根据Google App Engine Wiki,支持JSP + JSTL,所以它e根本不需要Scriptlets。

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

1

有迹象表明,实现你想要的一些很好的框架:

正如Thomas说,我可能会使用一个很好的JS框架像Backbone和REST

0

的Grails对这项工作做得很好....但它可以是一个痛苦位正确地让一切设置与应用程序引擎框架

0

我的轻量级模板引擎,Chunk Templates,将在谷歌应用程序引擎运行。

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

大量内置tag filters过,例如:

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

的例子/食谱WAR被部署在App Engine中的位置:http://chunk-docs.appspot.com/