节奏。 render() 在生成 xml 文件时抛出异常
Rythm. render() throws exception while generating an xml file
我正在尝试使用 Rythm 模板生成 xml 文件,当我添加带有 @for()
的 @if()
条件时出现 org.rythmengine.utils.TextBuilder
build() 错误循环。
@if(errorObjs != null) {
<Errors>
@for(ErrorObject errObj : errorObjs) {
<Error>
<ErrorCode>@errObj.errorid</ErrorCode>
<ErrorMessage>@errObj.errorcode</ErrorMessage>
</Error>
}
</Errors>
}
您的模板没有问题,请尝试以下代码:
http://fiddle.rythmengine.org/#/editor
问题可能出在您的 Java 代码中。
@def class ErrorObject {
String errorid;
String errorcode;
public ErrorObject(String id,String code) {
errorid=id;
errorcode=code;
}
}
@{
List<ErrorObject> errorObjs=new ArrayList<ErrorObject>();
errorObjs.add(new ErrorObject("id1","code 1"));
errorObjs.add(new ErrorObject("id2","code 2"));
errorObjs.add(new ErrorObject("id3","code 3"));
}
@if(errorObjs != null) {
<Errors>
@for(ErrorObject errObj : errorObjs) {
<Error>
<ErrorCode>@errObj.errorid</ErrorCode>
<ErrorMessage>@errObj.errorcode</ErrorMessage>
</Error>
}
</Errors>
}
不是问题的答案,只是对 @if
:
用法的评论
如果你想检查是否有东西 null
直接去:
@if(errorObjs) {
// display the errors
}
在 http://rythmengine.org/doc/directive.md#if
上查看有关 @if
指令的更多信息
关于代码的另一个建议是容器对象,如 List
应始终为非空值,而不是 return null
容器,return 空容器让你的代码更简洁。
我正在尝试使用 Rythm 模板生成 xml 文件,当我添加带有 @for()
的 @if()
条件时出现 org.rythmengine.utils.TextBuilder
build() 错误循环。
@if(errorObjs != null) {
<Errors>
@for(ErrorObject errObj : errorObjs) {
<Error>
<ErrorCode>@errObj.errorid</ErrorCode>
<ErrorMessage>@errObj.errorcode</ErrorMessage>
</Error>
}
</Errors>
}
您的模板没有问题,请尝试以下代码:
http://fiddle.rythmengine.org/#/editor
问题可能出在您的 Java 代码中。
@def class ErrorObject {
String errorid;
String errorcode;
public ErrorObject(String id,String code) {
errorid=id;
errorcode=code;
}
}
@{
List<ErrorObject> errorObjs=new ArrayList<ErrorObject>();
errorObjs.add(new ErrorObject("id1","code 1"));
errorObjs.add(new ErrorObject("id2","code 2"));
errorObjs.add(new ErrorObject("id3","code 3"));
}
@if(errorObjs != null) {
<Errors>
@for(ErrorObject errObj : errorObjs) {
<Error>
<ErrorCode>@errObj.errorid</ErrorCode>
<ErrorMessage>@errObj.errorcode</ErrorMessage>
</Error>
}
</Errors>
}
不是问题的答案,只是对 @if
:
如果你想检查是否有东西 null
直接去:
@if(errorObjs) {
// display the errors
}
在 http://rythmengine.org/doc/directive.md#if
上查看有关@if
指令的更多信息
关于代码的另一个建议是容器对象,如 List
应始终为非空值,而不是 return null
容器,return 空容器让你的代码更简洁。