- PR -

で2つ情報を渡すには?

投稿者投稿内容
taka
会議室デビュー日: 2004/01/20
投稿数: 10
投稿日時: 2004-01-31 10:55
<logic:iterate id="info" name="userInfoList">
<html:radio idName="info" property="selected" value="refno"/>

<bean:write name="info" property="refno" />
<bean:write name="info" property="username" />
<bean:write name="info" property="userID" />
<bean:write name="info" property="bumonNO" />

</logic:itelate>

上記のようなときに、現在は、selectedで取得できた、
refNOでデータベースにアクセスして、情報を取得していますが、
データベースのキーがrefNOとbumonNOがキーなので、
データベースに条件を与えるときに、refNOとbumonNOを与えて、
情報を取得したいです。ラジオボタンで選択したときに、
2つの情報を渡す(取得)には、どのようにすればよろしいでしょうか?

よろしくお願いします。

aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 2004-01-31 19:00
別途hiddenで入れといたらいいと思うけど、そこをラジオボタンにする必要あるんでしょうか?
taka
会議室デビュー日: 2004/01/20
投稿数: 10
投稿日時: 2004-01-31 19:38
返信ありがとうございます。

検索画面で条件を入力して、その条件にあてはまるものを表示し、
その中で、ラジオボタンで選択したものの情報を次の画面に出力するという
ことでラジオボタンを使用しています。

hiddenを使ってみたいと思います。

hiddenについて今まで何に使うのだろうと思っていたのですが、
他には、どういうときに使うのですか?
おかもと
大ベテラン
会議室デビュー日: 2003/06/08
投稿数: 182
投稿日時: 2004-01-31 23:12
引用:

takaさんの書き込み (2004-01-31 19:38) より:
hiddenについて今まで何に使うのだろうと思っていたのですが、
他には、どういうときに使うのですか?




「表示はしたくないけどデータとして持ちたい場合」全般です。
利用方法は開発者各自が決めるものですよ。
プリンス
ベテラン
会議室デビュー日: 2003/07/05
投稿数: 78
お住まい・勤務地: 神奈川
投稿日時: 2004-02-01 09:28
WEBアプリは大きく以下の2つに分類できます。

1. コンシューマ系のインターネットで使用する小規模のWEB (50人月以下)
2. 企業の基幹系システムの中、大規模WEB (50人月超)

1の場合は一般のユーザに対応するためブラウザの「戻るボタン」に対応する必要があります。したがってサーバ(サーブレット)側で現在のセッション情報(検索キー、ページ数)等を保持すると、「戻るボタン」を押されたときに対応できないため、そのような情報をすべてHTMLページに保持する必要があります。それが「HIDDEN」になります。

2の場合はブラウザの「戻るボタン」は無効にして、明示的にHTMLのBUTTONを使って「戻るボタン」を実現するのが一般的です。基幹系は、照会系のみでなく更新系がメインであるため、読み取り一貫性等の問題が発生するためです。「戻るボタン」をつぶすことで従来のクラサバ的な設計が可能になります。つまり、セッション情報(検索キー、ページ数)等はすべて、サーバ(サーブレット)側に保持すればよいわけです。したがって、2の場合はほとんどHIDDENタグの使用は避けることができ、保守、改修が容易になり工数を削減することができます。

ただし、1の場合でもSony BankのようなFlashを使用したクラサバ的なものも存在しますが...
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2004-02-02 10:24
引用:

プリンスさんの書き込み (2004-02-01 09:28) より:
WEBアプリは大きく以下の2つに分類できます。

1. コンシューマ系のインターネットで使用する小規模のWEB (50人月以下)
2. 企業の基幹系システムの中、大規模WEB (50人月超)

1の場合は一般のユーザに対応するためブラウザの「戻るボタン」に対応する必要があります。したがってサーバ(サーブレット)側で現在のセッション情報(検索キー、ページ数)等を保持すると、「戻るボタン」を押されたときに対応できないため、そのような情報をすべてHTMLページに保持する必要があります。それが「HIDDEN」になります。

2の場合はブラウザの「戻るボタン」は無効にして、明示的にHTMLのBUTTONを使って「戻るボタン」を実現するのが一般的です。基幹系は、照会系のみでなく更新系がメインであるため、読み取り一貫性等の問題が発生するためです。「戻るボタン」をつぶすことで従来のクラサバ的な設計が可能になります。つまり、セッション情報(検索キー、ページ数)等はすべて、サーバ(サーブレット)側に保持すればよいわけです。したがって、2の場合はほとんどHIDDENタグの使用は避けることができ、保守、改修が容易になり工数を削減することができます。

ただし、1の場合でもSony BankのようなFlashを使用したクラサバ的なものも存在しますが...



プリンスさんのお話は、「よくある話」ではありますが、「一般論」にしてしまう
のはいささか無理があるような・・・(^^;

Session変数代わり以外にもhiddenの使い道はたくさんありますし(Javascriptでの
処理結果をサーバに送るために格納したりとか、他にもいろいろ)、企業の
イントラネット内のアプリケーションでも「戻る」ボタンへの対応を要求される
こともあります。
逆に、WAN等で回線が非常に細い場合(未だに数十Kbitなんて回線もあります)に、
HTMLを少しでも小さくするために極力hiddenを使わないという実装もあります。

おかもとさんが言うように、「表示はしたくないけどデータとして持ちたい場合」全般
というのが妥当だと思いますが。漠然としすぎて難しいかもしれませんが。
taka
会議室デビュー日: 2004/01/20
投稿数: 10
投稿日時: 2004-02-02 23:18
本日、hiddenを入れてみました。

<logic:iterate id="info" name="userInfoList">
<html:radio idName="info" property="selected" value="refno"/>

<bean:write name="info" property="refno" />
<bean:write name="info" property="username" />
<bean:write name="info" property="userID" />
<bean:write name="info" property="bumonNO" />

</logic:itelate>
<html:hidden name="info" property="bumonNO" />

上記のようにしてみて、うまくキーを渡してSELECTしたと思ったのですが、
リストの2件が以下のようになっていたとき、
refno username userID bumonNO
1 aaa aaa 2
1 bbb bbb 4

ラジオボタンでrefno=1 bumonNO=2のレコードを選んでも
refno=1 bumonNO=4でテーブルを検索していました。
ラジオボタンで選択したものについて、
渡すには、どのように書けばよいのでしょうか?
よろしくお願いします。

Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2004-02-03 07:49
でしたら区切り文字を決定して文字列を結合した値を設定してしまうのが早いと思います。
まずActionFormでbumonNOとrefnoを結合した文字列を返すGetterを設定します。
ラジオボタンの値はそのGetterから値を取得し、サブミット後ActionFormでSetterがコールされた際に文字列を分割してbumonNOとrefnoにするなどの処理を行えば可能です。

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