Java 渲染传递到模板的模型对象的属性时出现问题
我是一个新手,有一个非常基础的模板。我正试图利用它来发送自动电子邮件。我已经读了尽可能多的书来消化外面的东西。我从一个简单的测试用例开始,在获取要渲染的对象的属性时遇到了困难。作为测试用例,我的模板文件email.stg中有以下内容Java 渲染传递到模板的模型对象的属性时出现问题,java,stringtemplate-4,Java,Stringtemplate 4,我是一个新手,有一个非常基础的模板。我正试图利用它来发送自动电子邮件。我已经读了尽可能多的书来消化外面的东西。我从一个简单的测试用例开始,在获取要渲染的对象的属性时遇到了困难。作为测试用例,我的模板文件email.stg中有以下内容 delimiters "$", "$" activate(person) ::= <<$person.personFirstName$>> 我的输出反映了personFirstName属性可以通过java获得,但我的模板没有呈现它 the
delimiters "$", "$"
activate(person) ::= <<$person.personFirstName$>>
我的输出反映了personFirstName属性可以通过java获得,但我的模板没有呈现它
the person first name is: Ivan
<nothing is returned here>
如果有任何帮助,我将不胜感激,这样我就可以继续使用更复杂的模板了。回答我自己的问题:我想这就是这里介绍的答案- “…通常,它们遵循旧的JavaBeans命名约定。StringTemplate首先查找方法getP()、isP()、hasP()。如果找不到其中一个方法,则查找名为p的字段。” 我认为这意味着“p”也可以用作方法名,但这是错误的。我使用的是企业对象框架,不幸的是,我的model.java文件的属性访问器不使用“get*”约定,这意味着ST从不请求它们。它们也不会存储为字段。我必须想办法解决这个问题,但我不想改变大规模模型框架来适应这个问题。如果我添加cover(get*)方法,它可以工作,但这不是最好的解决方案 一般来说,我从未遇到过这个问题,因为WebObjects模板引擎将使用或不使用“get*”进行渲染
the person first name is: Ivan
<nothing is returned here>
activate(person) ::= <<$person$>>
the person first name is: Ivan
999999999 - Johnson, Ivan G