0

我正在创建一个 jira 插件,我目前有一个 webwork 模块。我有以下类来表示网络工作:

public class ReportWebworkAction extends JiraWebActionSupport {

    private ArrayList<String> dataList = new ArrayList<String>();
    private String temp;

    //setters and getters for all varaibles

    @Override
    public String doDefault() throws Exception {
         //1) make http request
         //2) parse json data
         //3) display list of data in html table using velocity.vm

          return super.doDefault();
    }
}

现在,我能够成功发出 http 请求并将数据解析为 java 对象列表。如何在我的速度页面中查看该列表并为每个项目创建一个元素来显示数据。

这就是我想要做的:

#foreach($item in $dataList) {
    <tr>
          <td>$item.key</td>
          <td>$item.name</td>
          <td>$item.value</td>
    </tr>
}
#end

我的速度页面似乎无法识别 $dataList 项目,它是我的 ReportWebworkAction 类中的 ArrayList 变量。但是,它可以访问字符串变量 temp。

我读到我需要使用 Content Provider 和 getContextMap() 方法,但我对如何在单独的类中使用它感到困惑。有人可以告诉我正确的方法吗?谢谢。

4

1 回答 1

0

您需要 getter: getDataList() 在您的 WebWork 类中才能在速度模板中访问它。WebWork 类成员通过访问器(getter)传递。

是的 getContextMap() 也是一种解决方案,但是手动将对象放入上下文中很乏味。WebWork 使用正确命名的访问器自动执行此操作。

于 2016-12-07T13:59:16.393 回答