[STRUTS-33] リンクタグでMethodBindingを利用したい Created: 2007-01-22  Updated: 2007-02-06  Resolved: 2007-02-06

Status: Resolved
Project: S2Struts
Component/s: S2Struts
Affects Version/s: 1.3.0-beta-2, 1.2.8
Fix Version/s: 1.3.0-beta-3

Type: Improvement Priority: Major
Reporter: kanagashi Assignee: kanagashi
Resolution: Fixed Votes: 0
Labels: None


 Description   

[Seasar-user:5801]

ある画面でリンクをクリックすると指定されたアクションの
メソッドが実行されるということをしたいと思っております。

DispatchActionのようにActionのアノテーションで
「parameter=command」と指定してリンクのパラメータに
「command=メソッド名」を指定すればやりたいことはできるのですが
---------------------------------------------------------
<a href="アクション.do?command=メソッド名">詳細表示</a>
---------------------------------------------------------
他の画面ではSubmitボタン<s2struts:submit>でMethodBindingを
利用しており、できれば作りをあわせたいと考えております。
(#

{アクション.メソッド名}

の指定のしかたで統一したい)

またvalidateをキャンセルしたいときに
Submitボタン<s2struts:submit cancel="true">では
キャンセルするとvalidteを無視してアクションを呼び出しますが
リンクでvalidateをキャンセルしたときは
(パラメータに「org.apache.struts.taglib.html.CANCEL=」を指定)
例外ハンドラにより処理されるので、キャンセル時の動作が異なります。
これも、できれば動作をあわせたいと考えております。

そこで要望です。

<s2struts:submit action="#

{xxxxx.yyyyy}">がありますように
Strutsのリンクタグ<html:link action="xxxxxx">を拡張した
S2Strutsのリンクタグ<s2struts:link action="#{xxxxx.yyyyy}

">
ができれば、Submitボタンでもリンクでも同じように実行するメソッドを
指定できるのでソースファイルが見やすくなるかと思います。

またSubmitボタンのキャンセル<s2struts:submit cancel="true">と同じよう

リンクタグでも<s2struts:link cancel="true">のようにキャンセルが指定が
でき
validteを無視してアクションを呼び出すことができれば、キャンセル時の
動作を考えやすいかと思います。



 Comments   
Comment by kanagashi [ 2007-02-06 ]

S2Struts1.2.xへの追加は要望があった場合に実装します。

S2Struts1.3.xのリンクタグの使い方は以下の通りです。

コンポーネントhogeActionのdoAaaメソッドを呼び出す場合は
<s2struts:link action="#

{hogeAction.doAaa}">実行</s2struts:link>
と記述します。
HTMLには
<a href="/example/hoge.do?I3tob2dlQWN0aW9uLmRvQWFhfQ%3D%3D=">実行</a>
と表示されます。
これは、hogeActionが利用されているActionConfigを探し、
そのpath(この例では"/hoge")を利用してURLを組み立てています。

もしhogeActionが複数のActionConfigから利用されている場合は
<s2struts:link path="/hoge" action="#{hogeAction.doAaa}

">実行</s2struts:link>
のようにpath属性で利用するActionConfigのpathを指定します。

validateを実行しなくない場合は
<s2struts:link action="#

{hogeAction.doAaa}

" cancel="true">実行</s2struts:link>
のようにcancel属性にtrueを指定することにより、
validateをSKIPし、Actionメソッドを呼び出します。

Comment by kanagashi [ 2007-01-30 ]

S2Struts1.3.xにはリンクタグにMethodBindingとcancelの機能を追加した。
S2Struts1.2.xには追加してないけど、追加したほうが良いと思いますか?

Generated at Mon Dec 15 22:25:04 JST 2025 using Jira 10.6.1#10060001-sha1:a6461e220f274b29ced7ac9295492f2465fe5ef5.