我正在创建一个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()方法,但我对如何在单独的类中使用它感到困惑。有人能告诉我这样做的正确方法吗?谢谢。
答案 0 :(得分:0)
您需要在WebWork类中使用getter:getDataList()才能在速度模板中访问它。 WebWork类成员通过访问器(getter)进行传输。
是的getContextMap()也是一个解决方案,但将对象手动放入上下文是很繁琐的。 WebWork使用正确命名的访问器自动完成。