Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java appengine中将代码与html分离?_Java_Google App Engine_Jsp_View - Fatal编程技术网

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

如何在java appengine中将代码与html分离?,java,google-app-engine,jsp,view,Java,Google App Engine,Jsp,View,我现在正在学习如何用Java制作GoogleAppEngine应用程序,在他们的入门指南中,他们使用JSP,但这似乎让我回到了过去,那时我对MVC或关注点分离一无所知 我不想将代码放在模板中,而是希望使用类似于django模板或jinja的东西,就像您在python sdk中所做的那样。最好的框架是什么 我遵循《入门指南》中的留言簿示例,其中他们告诉您制作如下JSP: <html> <body> <% UserService userService

我现在正在学习如何用Java制作GoogleAppEngine应用程序,在他们的入门指南中,他们使用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>

你好!(你可以
)

你好!! 在你发布的问候语中加入你的名字


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

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

如前所述,我可能会使用一个好的js框架,如和REST,根据,支持JSP+JSTL,因此根本不需要Scriptlet


如果你想要一个干净的MVC架构,也许你应该使用一个支持该模式的框架。维基上说,Struts是受支持的,Spring MVC也是受支持的,所以你可以选择一个适合你需要的。grails在这方面做得很好……但是要用app engine框架正确设置所有内容可能会有点困难。我的轻量级模板引擎将在Google app engine中运行

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

还有很多内置的,例如:


示例/配方WAR部署在AppEngine中:

取决于您使用JSP做什么。您可以让JSP处理REST调用,并使用javascript库根据返回的数据处理视图,但我不确定它是否像你所希望的那样复杂。这并不是应用程序引擎所特有的——同样的问题也适用于任何JavaServlet平台。
{% $value|sprintf(%.02f) %}
{% $value|trim %}
{% $value|onempty("N/A") %}