如何在jira插件webwork模块中动态显示表内容?

时间:2016-12-06 19:21:18

标签: java jira-plugin atlassian-plugin-sdk

我正在创建一个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()方法,但我对如何在单独的类中使用它感到困惑。有人能告诉我这样做的正确方法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

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

是的getContextMap()也是一个解决方案,但将对象手动放入上下文是很繁琐的。 WebWork使用正确命名的访问器自动完成。