#【やりたい事】
入力フォームではない、画面に表示された文字列を
データ更新する際の条件として入力フォームと合わせて使いたい為に、
ボタン押下時にサーブレットへ送信したい。
例
テーブル名:選手管理テーブル management
カラム①:所属チーム team (画面に表示されている)
カラム②:選手名 player (入力フォームに入力する)
実行したいSQL文:update management set player = (入力した値) where team = (画面に表示された文字列);
#【やりがちな事】
Java内でSQL文を実行して、実行結果を画面上で表示する場合は、
<%=rs.getString("player")%>
ですが、
この値を、Sタグ内で使いたい場合は、純粋に
<s:submit type="submit" value="<%=rs.getString("player")%>">
になりそうですが、
これでは、エラーになってしまいます。
#【値を正しく入れる方法】
OGNL式を取り入れます。
①セッションに取得した値を格納
Java文中
session.setAttribute("player",<%=rs.getString("player")%>">)
②hiddenタグに値を格納
HTML文中
<s:hidden name="player" value = '%{#session.player}'/>
<s:submit type="submit" value="更新"/>
これで、Struts2における
入力フォームの他に、画面に表示されたデータを
サーブレットに送信することができます。