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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
有关于在GAE(Java)上设置模板框架的教程吗?_Java_Google App Engine_Velocity_Freemarker_Stringtemplate - Fatal编程技术网

有关于在GAE(Java)上设置模板框架的教程吗?

有关于在GAE(Java)上设置模板框架的教程吗?,java,google-app-engine,velocity,freemarker,stringtemplate,Java,Google App Engine,Velocity,Freemarker,Stringtemplate,我试图在谷歌应用程序引擎(使用Java)上使用HTML格式的模板来格式化我们的电子邮件,但就我的一生而言,我找不到一个像样的教程来说明如何设置 我试过查看,但找不到从servlet上下文加载独立模板并用作格式化程序的示例 有人能帮忙吗?我愿意接受任何建议,如Velocity或FreeMarker,只要它们在GAE上运行 谢谢您可以从类路径加载模板,就像在StringTemplate中使用的任何其他输入流一样 import org.antlr.stringtemplate.*; import or

我试图在谷歌应用程序引擎(使用Java)上使用HTML格式的模板来格式化我们的电子邮件,但就我的一生而言,我找不到一个像样的教程来说明如何设置

我试过查看,但找不到从servlet上下文加载独立模板并用作格式化程序的示例

有人能帮忙吗?我愿意接受任何建议,如Velocity或FreeMarker,只要它们在GAE上运行


谢谢

您可以从类路径加载模板,就像在StringTemplate中使用的任何其他输入流一样

import org.antlr.stringtemplate.*;
import org.antlr.stringtemplate.language.*;

StringTemplate hello = new StringTemplate("Hello, $name$", DefaultTemplateLexer.class);
hello.setAttribute("name", "World");
System.out.println(hello.toString());
您可以查看JavaDoc以了解如何使用输入流加载文件/资源,使用时,文件需要位于.war的
默认包中(即在
/lib
的根目录中)的
类路径上

将资源读入
字符串
,并用内容替换第一个参数,或使用
StringTemplate
构造函数之一


它非常简单。

您可以从类路径加载模板,就像在StringTemplate中使用的任何其他输入流一样

import org.antlr.stringtemplate.*;
import org.antlr.stringtemplate.language.*;

StringTemplate hello = new StringTemplate("Hello, $name$", DefaultTemplateLexer.class);
hello.setAttribute("name", "World");
System.out.println(hello.toString());
您可以查看JavaDoc以了解如何使用输入流加载文件/资源,使用时,文件需要位于.war的
默认包中(即在
/lib
的根目录中)的
类路径上

将资源读入
字符串
,并用内容替换第一个参数,或使用
StringTemplate
构造函数之一


这真的很简单。

知道怎么做了

StringTemplate的文档可能非常混乱。最新版本(版本4)的类与以前的版本不同(
ST
而不是
StringTemplate
STGroup
而不是
StringTemplateGroup
,等等)

它还对“antlr”具有外部依赖性。(链接包含指向所需JAR的链接),将“antlr”和“SimpleTemplate”JAR放在服务器上的WEB-INF/lib目录中

第2版引入了模板“组”,据我所知,这是从web服务器上的文件加载模板所必需的

所以为了让它工作,我必须定义一个模板组文件,包含以下内容,名为
emailTemplate.stg

html_format(keyToReplace1, keyToReplace2) ::= <<
<html>
<body>
  <div>
    This is $keyToReplace1$
    <br/>
    This is $keyToReplace2$
  </div>
</body>
</html>
>>

我知道怎么做了

StringTemplate的文档可能非常混乱。最新版本(版本4)的类与以前的版本不同(
ST
而不是
StringTemplate
STGroup
而不是
StringTemplateGroup
,等等)

它还对“antlr”具有外部依赖性。(链接包含指向所需JAR的链接),将“antlr”和“SimpleTemplate”JAR放在服务器上的WEB-INF/lib目录中

第2版引入了模板“组”,据我所知,这是从web服务器上的文件加载模板所必需的

所以为了让它工作,我必须定义一个模板组文件,包含以下内容,名为
emailTemplate.stg

html_format(keyToReplace1, keyToReplace2) ::= <<
<html>
<body>
  <div>
    This is $keyToReplace1$
    <br/>
    This is $keyToReplace2$
  </div>
</body>
</html>
>>

Freemarker依赖于AWT的原因很奇怪,它不会与GAE一起工作,它并不像StringTemplate那样是一个好的选择。Freemarker有一个正式的GAE版本与Java版本一起发布了很长一段时间。(顺便说一句,AWT依赖于一个通用树API,与GUI无关……)Freemarker依赖于AWT的原因很奇怪,它不会与GAE一起工作,它也不像StringTemplate那样是一个好的选择。Freemarker有一个正式的GAE版本与Java版本一起发布了很长一段时间。(顺便说一句,AWT依赖于通用树API,与GUI无关…)谢谢!我很难弄明白怎么做。。。你知道有什么教程可以让我看到这是如何做到的吗?我根本不知道如何使用StringTemplate。我真正感兴趣的是如何从web容器中的上下文路径加载模板。我仍然找不到任何例子来说明如何做到这一点。谢谢!我很难弄明白怎么做。。。你知道有什么教程可以让我看到这是如何做到的吗?我根本不知道如何使用StringTemplate。我真正感兴趣的是如何从web容器中的上下文路径加载模板。我仍然找不到任何例子来说明如何做到这一点。只有Java版本似乎受到名称更改的影响。C#端口保留了“专有”名称。只有Java版本似乎受到名称更改的影响。C#端口保留“专有”名称。