LookupDispatchAction + html:link

LookupDispatchActionはボタンを使う時に役立つのですが、リンク先にアクションを指定したい時もありますよね。 そういう時は、アクションのディスパッチメソッドの名前をリンクに付けたします。


<html:link action="/dataSubmit?methodKey=edit"/>
LookupDispatchActionはリソースバンドル内のキーとアクションパラメータのバリューとをマッチさせようとするので、このままでは問題がでてくるかもしれません。 そこでgetKeyMethodMapメソッドの中に、ボタン用のキーと別に、リンク用のペアを定義しておき、ディフォルトのプロパティファイルにそのキー/バリューを足しておきます。

protected Map getKeyMethodMap() {
Map map = new HashMap();
//リンク用
map.put("global.action.link.edit", "edit");
map.put("global.action.link.delete", "delete");
map.put("global.action.link.update", "update");
//ボタン用
map.put("button.edit", "edit");
map.put("button.delete", "delete");
map.put("button.update", "update");
return map;
}
ApplicationResources.propertiesファイルには次の項目を足しておきます。

global.action.link.edit=edit
global.action.link.delete=delete
global.action.link.update=update
その他のbutton.edit/button.delete/button.updateは使う言語によって、それぞれのプロパティファイルに定義しておきます。(ApplicationResources_ja.propertiesなど)