0

私は jira プラグインを作成しており、現在 webwork モジュールを持っています。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

私の Velocity ページは、ReportWebworkAction クラスの ArrayList 変数である $dataList アイテムを認識できないようです。ただし、文字列変数 temp にはアクセスできます。

Content Provider と getContextMap() メソッドを使用する必要があることを読みましたが、それを別のクラスで使用する方法について混乱しています。誰かがこれを行う正しい方法を教えてもらえますか? ありがとう。

4

1 に答える 1

0

速度テンプレートでアクセスできるようにするには、WebWork クラスに getter: getDataList() が必要です。WebWork クラスのメンバーは、アクセサー (ゲッター) を介して転送されます。

はい、 getContextMap() も解決策ですが、オブジェクトを手動でコンテキストに入れるのは面倒です。WebWork は、適切な名前のアクセサーを使用して自動的にそれを行います。

于 2016-12-07T13:59:16.393 に答える