标签: stringtemplate-4

确保 HTML 实体在 StringTemplate 中转义的最佳方法是什么

假设有以下字符串模板,会得到一个 Java Bean 对象列表:

<ul>$people:{p|<li>$p.name$ $p.email</li>}$</ul>
Run Code Online (Sandbox Code Playgroud)

即人员列表可能包含Person您可能或可能没有能力增强/扩展的对象:

class Person {
    ....
    public getName() { ... }
    public getEmail() { ... }
}
Run Code Online (Sandbox Code Playgroud)

getName()getEmail()方法不返回消毒(编码的HTML实体)。你如何解决这个问题?

java stringtemplate stringtemplate-4

3
推荐指数
2
解决办法
1891
查看次数

StringTemplate检查数组在Java中是否为空

如果数组不为空,如何使用StringTemplate检查?

下面的示例不起作用:

<if(teams.length > 0)>
  <ul>
    <teams:{team | <li><team></li> }>
  </ul>
<endif>
Run Code Online (Sandbox Code Playgroud)

其他(无效)示例:

String content = "<if(teams)>list: <teams;separator=\", \"><endif>";
ST template = new ST(content);
template.add("teams", new Long[]{123L, 124L});

System.out.println(template.render());

System.out.println("--------");

content = "<if(teams)>list: <teams;separator=\", \"><endif>";
template = new ST(content);
template.add("teams", new Long[]{});

System.out.println(template.render());
Run Code Online (Sandbox Code Playgroud)

输出:

list: 123, 124
--------
list: 
Run Code Online (Sandbox Code Playgroud)

java stringtemplate stringtemplate-4

3
推荐指数
1
解决办法
2539
查看次数

StringTemplate中的卷曲手镯

以下StringTemplate给出了一个"无效字符'}'"异常,因为之后的大括号return null;:

$StatementList:{statement | 
public T $statement$(X x) { return null; }  }$
Run Code Online (Sandbox Code Playgroud)

我希望有一个输出像:

public T statement1(X x) {return null; }
public T statement2(X x) {return null; }
Run Code Online (Sandbox Code Playgroud)

我怎么能逃脱这个闭合的大括号?

stringtemplate stringtemplate-4

3
推荐指数
1
解决办法
316
查看次数

StringTemplate:在生成Javascript数组时跳过尾随昏迷

我在StringTemplate 4中生成了一个Javascript数组,但我在跳过最后一个元素之后的尾随昏迷时遇到了麻烦.每个项目都是使用模板生成的,然后我想用comas将它们分开,以便在表单中创建一个数组:

[ item1, item2, item3, item4 ]
Run Code Online (Sandbox Code Playgroud)

目前,我生成此阵列的最佳方法是:

array(elems) ::= <<
  [ 
    $first(elems):elem_noComa()$
    $rest(elems):elem()$
  ]
>>

elem_noComa(el) ::= <<  { ...element generation... } >>

elem(el) ::= <<
  , $elem_noComa(el)$
>>
Run Code Online (Sandbox Code Playgroud)

有没有办法更容易/更短的形式?

stringtemplate stringtemplate-4

2
推荐指数
1
解决办法
261
查看次数

与 StringTemplate4 相比,令人震惊的 RazorEngine 3.3 性能

是否有任何原因或我做错了什么,为什么 RazorEngine 仅解析 100 个不同的模板就这么慢?我正在研究 StringTemplate,并执行了两个测试进行比较,如下所示。

    [Test]
    public void TestStringTemplate()
    {
        CsStopwatch stopwatch = new CsStopwatch();
        stopwatch.Start();
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < 100; i++)
        {
            string template = @"Hello there my name is <Name> <Surname> "  + i;
            TextParseTests.TestModel model = new TextParseTests.TestModel();
            model.Name = "Karl";
            model.Surname = "Cassar";

            Template t = new Template(template);
            t.Add("Name", model.Name);
            t.Add("Surname", model.Surname);

            var result = t.Render();
            sb.AppendLine(result);
        }
        stopwatch.Stop();
        var ms = stopwatch.ElapsedMilliseconds;
        int k = 5; …
Run Code Online (Sandbox Code Playgroud)

stringtemplate razor stringtemplate-4

2
推荐指数
1
解决办法
2343
查看次数

如何摆脱StringTemplate警告"\n in string"

我正在使用StringTemplate 4生成一些Java源文件.

模板非常简单,例如:

QueryHandler(method) ::="
public class Obtenir<method.name>Handler extends QueryHandler\<List\<<method.name>Db>> implements IQueryHandler\<List\<<method.name>>>{
    private IQuery\<List\<<method.name>Db>> query;
    private <method.name>Converter converter;

    @Inject
    public Obtenir<method.name>Handler(IQuery\<List\<<method.name>Db>> query, <method.name>Converter converter, IStatisticsCollecter theStatsCollecter){
        super(theStatsCollecter);
        if(query == null){
            throw new IllegalArgumentException(\"The query argument cannot be null\");
        }
        if(converter == null){
            throw new IllegalArgumentException(\"Illegal argument for converter(null)\");
        }
        this.query = query;
        this.converter = converter;
    }

    public List\<<method.name>> handle(Object... params) throws JdbcException {
        final String method = \"obtenir<method.name>\";
        DaoQueryStatusCallable status = new DaoQueryStatusCallable();
        List\<<method.name>Db> result = invoke(query, status, method);
        return …
Run Code Online (Sandbox Code Playgroud)

stringtemplate stringtemplate-4

1
推荐指数
1
解决办法
777
查看次数

如何在`StringTemplate4`中重置`ST`实例?

版本3中的StringTemplate实例有一个.reset()方法.

我在for/each循环内部生成并希望在每个循环结束时将实例重置为其默认状态.我搜索了JavaDoc,但无法找到如何重置实例ST以重用它.

你如何重置一个ST实例StringTemplate4

stringtemplate stringtemplate-4

0
推荐指数
1
解决办法
324
查看次数

标签 统计

stringtemplate ×7

stringtemplate-4 ×7

java ×2

razor ×1