网似乎充满了Velocity和FreeMarker之间的比较,它们似乎相当合理.但似乎几乎没有StringTemplate和FreeMarker之间的比较!
那么,StringTemplate和FreeMarker之间的主要区别是什么?
我对它们的用法是仅生成HTML页面.在这两个中,我会期望FreeMarker更合适,更有能力,因为这似乎更常见 - 但通过快速浏览一下,看起来StringTemplate实际上有更合适的功能!
如果使用过两者的人都有时间发表评论会很棒 - 对于实际细节,我可以并排阅读文档,但我想要开始使用.
我正在探索ASP.NET MVC,我想添加jQuery以使网站具有交互性.我使用StringTemplate移植到.Net,作为我的模板引擎生成html并发送JSON.但是,当我查看页面时,我看不到它.调试之后,我意识到String用于访问属性等$,而jQuery也使用它来操作DOM.哎呀,我看过其他模板引擎,其中大多数使用美元符号:(.
ASP.Net MVC的任何替代模板引擎?我想保留jQuery,因为MSFT宣布它将用于Visual Studio(2008?)
提前致谢 :)
更新
请转到ASP.NET MVC视图引擎比较问题中的答案,获取ASP.NET MVC模板引擎的完整列表,以及它们的优缺点
更新2
最后,我将把JavaScript代码(包括JQuery)放在一个单独的脚本文件中,因此我不担心$模板文件中的混合.
更新3
更改了标题以反映我需要解决的问题.毕竟"Y中的最佳X"是非常主观的问题.
很难看出StringTemplate如何轻松(或不)与流行的 Java Web MVC框架集成.
哪些Java MVC框架可以与StringTemplate轻松集成?
一个很好的答案:
读者/选民,如果你知道这是真的和伟大的,请投票寻找解决方案.
在这个问题的范围内,我对除StringTemplate之外的任何其他模板引擎都不感兴趣.
我没能找到一个在Python中继承string.Template的好例子,尽管我在文档中看到过多次引用.
网上有这方面的例子吗?
我想将$更改为不同的字符,并可能更改标识符的正则表达式.
可能重复:
如何在.Net中的格式字符串中转义括号
如何在C#中放入{或}逐字输入字符串?
using System;
class DoFile {
    static void Main(string[] args) {
        string templateString = @"
        \{{0}\}
        {1}
        {2}
        ";
        Console.WriteLine(templateString, "a", "b", "c");
    }
}
当我在逐字字符串中使用'{'或'}'时出现错误,我想这是因为'{'或'}'用于参数标记,例如{0}, {1}, {2}.\{不起作用.
Unhandled Exception: System.FormatException: Input string was not in a correct format.
  at System.String.ParseFormatSpecifier (System.String str, System.Int32& ptr, System.Int32& n, System.Int32& width, System.Boolean& left_align, System.String& format) [0x00000] in <filename unknown>:0 
  at System.String.FormatHelper (System.Text.StringBuilder result, IFormatProvider provider, System.String format, System.Object[] args) [0x00000] in <filename …我刚开始在C#项目中使用StringTemplate.我浏览了文档,但似乎无法找到实现这个简单场景的方法:
我有一个简单的业务对象列表(让我们说订单),我希望它们显示在我的html模板中的UL标签内.
所以,我的.st模板看起来像这样(伪代码):
<html> some text <ul>[Order template]<li>[Order name here]</li>[/Order template]</ul></html>
我希望我的输出是:
<html> some text <ul><li>Order 1</li><li>Order 2</li>...</ul></html>
我无法弄清楚如何使用StringTemplate来完成这项工作.有任何想法吗?
我需要打印
a
"b"
c
使用vebatim字符串,我在这里提出了关于多行代码模板的另一个问题.
我尝试使用逐字字符串如下:
using System;
class DoFile {
    static void Main(string[] args) {
        string templateString = @"
        {0}
        \\"{1}\\"
        {2}
        ";
        Console.WriteLine(templateString, "a", "b", "c");
    }
}
但是,我收到了这个错误.
t.cs(8,11): error CS1525: Unexpected symbol `{'
t.cs(9,0): error CS1010: Newline in constant
t.cs(10,0): error CS1010: Newline in constant
\"{1}\" 不起作用.
怎么了?
我正在尝试创建一个简单的XML模板,到目前为止只包含:
<?xml version="1.0"?>
我读了这样的文件:
    STGroup group = new STGroupDir("templates");
    ST st = group.getInstanceOf("report");
    st.add("analysis", ana);
    String result = st.render();
    System.out.println(result);
结果是几条错误消息:
report.st 1:1: invalid character '<'
report.st 1:1: invalid character '?'
report.st 1:19: invalid character '?'
report.st 1:20: invalid character '>'
report.st 1:2: no viable alternative at input 'xml'
我见过其他人阅读HTML tempaltes也使用标签.那么我做错了什么?
是的,我知道,这 已 被 要求 之前.但大多数问题是两年前的问题,今天必须有一个更好的答案.
我需要一种用于呈现HTML的模板语言.要求:
必须可以从Java调用.
不能是Freemarker,Velocity或StringTemplate.我们已经使用Freemarker一年了,而且速度太慢了.它在负载下消耗了50%的CPU周期.速度比Freemarker差,而StringTemplate也有自己的问题.
它必须使用JSON或其Java等价物,即地图,列表和基元.
我开始让Node.js羡慕.在过去的一年里,Javascript已经有了大量的模板活动,但对Java来说却很少(我知道).
理想的语言看起来像Liquid,它只存在于Rails中.
Jade存在于Java中,但我不希望它附带的所有HTML重新格式化.
更新
我最终选择了Handlebars,它也可用于Java.两者都很棒.
我有兴趣使用StringTemplate模板引擎编写类似于嵌套循环的东西.在C#中有一个HashTable,其中每个Key包含Document对象列表,每个Document都有一个标题和源.我想在电子邮件的开头列出每个来源的文档标题摘要.
<h1>Summary</h1>
<h2>Source A</h2>
<ul>
  <li>title 1</li>
  <li>title 2</li> 
</ul>
<h2>Source B</h2>
<ul>
  <li>title 3</li>
  <li>title 4</li> 
</ul>
使用StringTemplate实现此目的的最佳方法是什么?
stringtemplate ×10
c# ×4
java ×4
.net ×2
freemarker ×2
templates ×2
velocity ×2
asp.net ×1
asp.net-mvc ×1
frameworks ×1
html ×1
integration ×1
python ×1
xml ×1