2012-04-17 49 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/