下の表のような一覧表示で、ユーザIDをクリックして、ユーザ詳細情報画面に遷移するっていうような パターンってよくありますよね? 結構、僕みたいな初心者は困ります。 javaとJSPとjavascriptとタグで頭がこんがらかります。 httpのGETを使えばもう少し簡単ですが、GET禁止!POSTのみ!って現場はかなり多いです。 そんなときは、javascriptを使ってこうするみたいです。 上のテーブル部分のhtmlは、こんな具合です。
<form name="mainForm" action="submit01r.html" method="post">
<table border="1" width="25%" cellspacing="0">
<tr>
<td>ユーザID</td><td>名前</td><td>部署</td>
</tr>
<tr>
<td><a href="javascript:setAndSubmit('001')">001</a></td><td>斉藤</td><td>営業</td>
</tr>
<tr>
<td><a href="javascript:setAndSubmit('002')">002</a></td><td>佐藤</td><td>総務</td>
</tr>
<tr>
<td><a href="javascript:setAndSubmit('003')">003</a></td><td>鈴木</td><td>総務</td>
</tr>
</table>
<input type="hidden" name="userId" value="" />
</form>
<a href="javascript:setAndSubmit('001')">001</a>
の部分のhtmlをJSPで作成させるところがミソです。 この部分はタグを使わないシンプルなjspなら
<a href="javascript:setAndSubmit('<%= request.getAttribute("userId") %>')">
<%= request.getAttribute("userId") %>
</a>
Strutsでタグを使ったjspなら
<a href="javascript:setAndSubmit('<bean:write name="XXXForm" property="userId" />')"
<bean:write name="XXXForm" property="userId" />
</a>
で、javascriptはこんな具合で定義します。
<script language="javascript">
function setAndSubmit(id) {
document.mainForm.userId.value=id;
document.mainForm.submit();
}
</script>
つまり、form:mainForm の hidden:userId の value を javascript で乗せ変えて送信させるわけですね。 あとは、form:mainForm の action で定義したところに遷移します。サーブレットのurlを指定すればOKですね。 それでは、上の一覧テーブルのリンクの部分をクリックしてみましょう。イメージがつかめると思います。
|
||||||||||||||