あなたの最初の質問に:
見てください:プロジェクトタブパネルモジュール
そこで設定する必要があるクラスは、プロジェクト タブ パネルのレンダリングを担当します。通常、いくつかの速度テンプレートをそこにレンダリングします。VersionsProjectTabPanel が実装するインターフェイス ( com.atlassian.jira.plugin.browsepanel.TabPanel ) の 1 つを見てください。getHtml(...)という名前のメソッドがあります。パネルが Web ページに表示される前に、Jira はこのメソッドを呼び出します。
それで、あなたがしなければならないこと:
- TabPanelインターフェースを実装するクラスを定義し、このクラスを atlassian-plugin.xml のプロジェクト タブ パネル モジュール記述子に設定します。
- メソッドgetHtml(...)を独自のテンプレート レンダリング プロセスで上書きします。
上書きされたメソッドでは、VelocityManagerへの参照を取得する必要があります:
VelocityManager velocityManager = ComponentManager.getInstance().getVelocityManager();
速度テンプレートを作成し、getBody(...)メソッドでレンダリングします。
String renderedText = velocityManager.getBody("<PATH_TO_TEMPLATE>", "templatename.vm", context);
そのテンプレートにコンテンツを渡したい場合は、getBody(...)メソッドのコンテキスト変数を介して行います。Map のタイプはMap<Object, Object>
です。通常、そこに文字列/オブジェクト エントリを配置します。Key-String はテンプレートで変数として宣言され、Value-Object は変数の値です。Map<String, Object>
そのrenderTextを return-Value としてgetHtml(...)の呼び出し元に渡すと、ページに表示されます。
そのトピックに関するいくつかの Q&A とチュートリアルのページ:
2 番目の質問に:
<form>...</form>
ベロシティ テンプレートでタグを宣言するだけです。そこにある action-attribute は、Webwork アクション URL を指している必要があります。上書きしたgetHtml (...)メソッドでは、 ServletActionContext を介してHttpServletRequestコンテキストにアクセスする必要があります。
HttpServletRequest request = ServletActionContext.getRequest();
String someRequestParam = request.getParameter("paramName");
前に説明したテンプレート コンテキスト マップを介してリクエスト パラメータのコンテンツを速度テンプレートに渡すか、それを使用して何らかのビジネス ロジックを実行します。