- PR -

<jsp:forward> の <jsp:param> をループで設定したい

1
投稿者投稿内容
Jumpin'' Jack Flash
大ベテラン
会議室デビュー日: 2006/01/24
投稿数: 198
投稿日時: 2006-08-04 12:13
requestのパラメータをMapに詰めて、
Taglibで次のページへリダイレクトしています。
コード:

<c:redirect url="nextPage">
<c:forEach var="map" items="${parameter.values}">
<c:forEach var="value" items="${map.value}">
<c:param name="${map.key}" value="${value}" />
</c:forEach>
</c:forEach>
</c:redirect>



これだと、GETで渡されるので、
nextpage?a=1&b=2&c=3... と、パラメータが丸見えになってしまうので、
POSTで渡す
コード:

<jsp:forward page="/form.html">
<jsp:param name="${map.key}" value="${value}" />
</jsp:forward>


にしたいのですが、TaglibのELを解釈できません。

<c:redirect> のようにループで<c:param>をセットするには
どうすればよいのでしょうか?
#JSPの中に豪快にJAVAのコードを書くのはできれば避けたい

よろしくお願いいたします。


[ メッセージ編集済み 編集者: Jumpin' Jack Flash 編集日時 2006-08-04 12:14 ]

[ メッセージ編集済み 編集者: Jumpin' Jack Flash 編集日時 2006-08-04 12:15 ]
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-08-04 13:08
引用:

にしたいのですが、TaglibのELを解釈できません。



jspタグとJSTLタグは別物なので、JSTLの世界からjspタグの世界に
値を渡してあげないといかなかった気がします、記憶によると。

確か
コード:
<jsp:param name="<c:out .../>" value="<c:out .../>" />



とか試してダメだったんで

コード:
<jsp:param name="<%=変数1 %>" value="<%=変数2 %>" />



になるように<c:out>とかを使って処理したと思います。


Jumpin'' Jack Flash
大ベテラン
会議室デビュー日: 2006/01/24
投稿数: 198
投稿日時: 2006-08-09 16:09
引用:

コード:
<jsp:param name="<%=変数1 %>" value="<%=変数2 %>" />


になるように<c:out>とかを使って処理したと思います。


このやり方がわからなかったので、

引用:

コード:
<jsp:param name="<%=変数1 %>" value="<%=変数2 %>" />




こう書いてみたところ、
org.apache.jasper.JasperException: xxxx.jsp(14,0) jsp:param 標準アクションの name 属性はどんな式も受け付けません
と怒られました。

<c:out>とかを使って処理するとは、どういった手法でしょうか。

よろしくお願いいたします。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-08-09 18:52
<c:out>と組み合わせたのは、Strutsのlogic:forwardタグと
StrtusELタグライブラリを組み合わせて使った際のことでした。
<jsp:forward>のname属性は変更できませんね、失礼しました。
次のページにPOSTで送るのでは無く、requestスコープに
Mapのパラメータを設定して、jsp:paramの指定無しでフォーワード
する方法などはだめでしょうか。次のページがPOST用の
作りになっていたらだめだとは思うのですが。
1

スキルアップ/キャリアアップ(JOB@IT)