- - PR -
jspで動的なaction属性
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-05-19 10:35
include時にsubmitのaction属性を動的に実現したいです。
単なる文字列パラメータ渡しは下記でいけるのですが、 action属性に設定したりする事はできないようです。 --------------------------------------------------------------------------- <jsp:include page="test.jsp" flush="false"> <jsp:param name="param1" value="param"/> </jsp:include> (受け側) <%= request.getParameter("param1") %> --------------------------------------------------------------------------- どのようにすれば実現できるでしょうか? | ||||
|
投稿日時: 2008-05-19 11:06
で、できませんか?(エスケープ等が必要ですが・・・) 何をどう試して、どんなエラーが出たのか等書いていただけると、 回答しやすいです。 | ||||
|
投稿日時: 2008-05-19 11:31
早急のご回答ありがとうございます。
具体的には受け側jspで以下のように記述しました。 ----------------------------------------------- <s:form> <s:submit type="image" value="" action="<%= request.getParameter("param1") %>" src="aaa.png" onmouseover="this.src='bbb.png';" onmouseout="this.src='aaa.png'" /> </s:form> ----------------------------------------------- 結果はボタンすら表示されない状況です。 ちなみにaction属性を固定指定でやるとうまく動作します。 | ||||
|
投稿日時: 2008-05-19 11:40
追記です。エラー内容は以下です。
-------------------------------------------------------- 致命的: サーブレット default のServlet.service()が例外を投げました org.apache.jasper.JasperException: TLD又はタグファイル中のattribute指示子に従って属性actionは どんな式も受け付けません -------------------------------------------------------- | ||||
|
投稿日時: 2008-05-19 12:30
s:submitが何のタグライブラリか知りませんので、
内部でEL式が使えるか知りませんが、
で実現できませんか? | ||||
|
投稿日時: 2008-05-19 15:17
>s:submitが何のタグライブラリか知りませんので、
失礼しました。struts2を使っています。 prefix「s」はstruts-tagsのタグライブラリです。 >action="${param.param1}" を記述してみましたが、 There is no Action mapped for namespace / and action name ${param.param1}. とエラーになってしまいました。。 (アクションマッピングされていない?) 単純に同一ボタンのaction属性を可変にしてjspを共用したかっただけ なのですけど、そう簡単にはいかないようですね・・。 画面の問題なので、jsp、struts.xmlのみで解決したいのですが、 他に何か手段は考えられますでしょうか? | ||||
|
投稿日時: 2008-05-19 16:48
TLDを確認しましたが、submitタグのaction属性の、
rtexprvalueがfalseになっていましたので、 EL式やスクリプトレットでの設定はできないようですね。 JavaScriptで対応するというのはいかがでしょう。 onsubmit属性で指定した関数の中で、 対象フォームのactionを書き換えてみてはいかがでしょうか? これなら、
という感じのコードで対処可能かと思います。 (サンプルなんでエスケープとかしてません) | ||||
|
投稿日時: 2008-05-20 09:50
返信遅れまして申し訳ありません。。
いろいろ試行錯誤しておりました。 未だに実現できておりませんが。。 javascriptによってaction属性を設定するやり方ですが、 ------------------------------------------- TLDによると、タグ submit の属性 onsubmit は無効です ------------------------------------------- というエラーが出ます。 記述の問題なのでしょうか? ------------------------------------------- onsubmit="return onsubmit_test()" or onsubmit="onsubmit_test();return false;" ------------------------------------------- |