Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.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 渲染传递到模板的模型对象的属性时出现问题_Java_Stringtemplate 4 - Fatal编程技术网

Java 渲染传递到模板的模型对象的属性时出现问题

Java 渲染传递到模板的模型对象的属性时出现问题,java,stringtemplate-4,Java,Stringtemplate 4,我是一个新手,有一个非常基础的模板。我正试图利用它来发送自动电子邮件。我已经读了尽可能多的书来消化外面的东西。我从一个简单的测试用例开始,在获取要渲染的对象的属性时遇到了困难。作为测试用例,我的模板文件email.stg中有以下内容 delimiters "$", "$" activate(person) ::= <<$person.personFirstName$>> 我的输出反映了personFirstName属性可以通过java获得,但我的模板没有呈现它 the

我是一个新手,有一个非常基础的模板。我正试图利用它来发送自动电子邮件。我已经读了尽可能多的书来消化外面的东西。我从一个简单的测试用例开始,在获取要渲染的对象的属性时遇到了困难。作为测试用例,我的模板文件email.stg中有以下内容

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