tohokuaikiのチラシの裏

技術的ネタとか。

ConfluenceのプラグインでXWork/WebWork2の仕組みを使ったときのボタンによるAction先の制御

ConfluenceのバンドルしてるXWorkでは、サブミットボタンの名称によるAction先の変更はできないようだ。

なんとなく、

<input type="submit" name="Top_Action" value="トップへ"/>

とすると、Top_Actionに関連付けられたActionになるのかなと思いきや、そうではない。

実際には、2方向しか移動ができないみたい。

  1. 進む
  2. キャンセル

この2つのボタンはペアになっていて

#tag("Submit" "theme='aui'")

というVelocityテンプレートタグで一括して設置できる。

で、この2つは実際にはHTMLで

<input id="confirm" class="submit aui-button " name="confirm" value="送信" type="submit">
<input id="cancel" class="aui-button-link aui-button " name="cancel" value="キャンセル" type="submit">

という2つのボタンになる。

cancelというname属性があるElementがあると、(というかそのキーのPOST/GETをあたえると)Action先のExecuteとかValidateはしないで、atlassian-plugin.xml で定義づけられたactionの結果の中でcancelというのに行く。

<result name="cancel" type="velocity">/templates/page/custom.vm</result>

とか。

それ以外だとformタグのAction先に行く。