1

我正在尝试使用 Rythm 模板生成一个 xml 文件,当我使用循环添加条件org.rythmengine.utils.TextBuilder时出现 build() 错误。@if()@for()

@if(errorObjs != null) {
  <Errors>
  @for(ErrorObject errObj : errorObjs) {
     <Error>
        <ErrorCode>@errObj.errorid</ErrorCode>
        <ErrorMessage>@errObj.errorcode</ErrorMessage>
     </Error>
  }
  </Errors>
}
4

2 回答 2

0

您的模板没有任何问题,请尝试以下代码:

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>
}
于 2015-05-21T09:35:55.567 回答
0

不是问题的答案,只是对以下用法的评论@if

如果你想检查某些东西是否null直接与:

@if(errorObjs) { // display the errors }

在http://rythmengine.org/doc/directive.md#if查看更多关于@if指令的信息

关于代码的另一个建议是容器对象List应该始终是非空值,而不是返回null容器,返回空容器以使您的代码更清晰。

于 2015-05-21T09:46:35.780 回答