- PR -

checkboxのデータが取得できない

1
投稿者投稿内容
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2005-02-04 23:49
以下の2つのメソッドを使ってformのtextやcheckboxのデータを
ハッシュに格納しようと思っています。

しかしtextのデータは取れるのですがcheckboxのデータは
Enumeration obj_enum = p_request.getParameterNames();
には入ってきません。

どうしてなんでしょうか?ご存知の方よろしくお願いいたします。

// ==============================================================================
/*
* メソッド名 :chgCharCode
* 処理概要 :HTTP転送時に文字化けするのを回避する
* 作成者 :N.Tomida(CAD/CAM)
* 作成日 :2004.08.15
* ------------------------------------------------------------------------------
* 引数:@p_str_text :変換対象文字列
* 戻値:p_str_text :変換後文字列
*/
// ==============================================================================

public static String chgCharCode(String p_str_text) throws Exception{
p_str_text = new String(p_str_text.getBytes("8859_1"), "Shift_JIS");
return(p_str_text);
}


// ==============================================================================
/*
* メソッド名 :chgCharCode
* 処理概要 :HTTP転送時に文字化けするのを回避する
* 作成者 :N.Tomida(CAD/CAM)
* 作成日 :2004.08.15
* ------------------------------------------------------------------------------
* 引数:@p_request :requestオブジェクト
* 戻値:hash_form :変換後文字列
*/
// ==============================================================================
public static HashMap chgCharCode(HttpServletRequest p_request) throws Exception{

HashMap hash_form = new HashMap();
String str_hash_key = null;
Enumeration obj_enum = p_request.getParameterNames();

while(obj_enum.hasMoreElements()){
str_hash_key = (String)obj_enum.nextElement();
hash_form.put(
str_hash_key
,chgCharCode(p_request.getParameter(str_hash_key))
);
}
return(hash_form);
}
takamaro
大ベテラン
会議室デビュー日: 2004/10/12
投稿数: 100
投稿日時: 2005-02-05 00:42
引用:

しかしtextのデータは取れるのですがcheckboxのデータは
Enumeration obj_enum = p_request.getParameterNames();
には入ってきません。


getParameterNames()メソッドで取得できないという事は入力要求フォームに
問題があるのではないでしょうか?
checkboxがsubmitされるformタグに囲まれていますか?
name属性はきちんと定義されていますか?
それと、getParameter()ではcheckboxのような複数の戻り値には対応できません。
ServletRequestクラスのJavaDocを調べれば適切なメソッドを見つけることが
出来ると思います。

余談ですが、、、
「処理概要-文字化けするのを回避」を実現するのにgetBytes()が適切かどうかは
環境不明で何とも言えませんが、単に「それ以外の方法を知らない」というだけで
したら、setCharacterEncodingでググることをお奨めします。

[ メッセージ編集済み 編集者: takamaro 編集日時 2005-02-05 00:49 ]
ピンクの恐竜
常連さん
会議室デビュー日: 2005/02/01
投稿数: 42
投稿日時: 2005-02-05 15:51
チェックボックスにチェックをつけても値が取れませんか?

チェックボックスにチェックを付けた時は値を取得できますが、
("true"か"on"か忘れましたが)
チェックを付けないと値の取得は出来ません。
(nullになります。)

引用:

余談ですが、、、
「処理概要-文字化けするのを回避」を実現するのにgetBytes()が適切かどうかは
環境不明で何とも言えませんが、単に「それ以外の方法を知らない」というだけで
したら、setCharacterEncodingでググることをお奨めします。


同感です。
Filterクラスを作ってそこでsetCharacterEncodingを実行すればよいかと思います。


[ メッセージ編集済み 編集者: ピンクの恐竜 編集日時 2005-02-05 15:55 ]

[ メッセージ編集済み 編集者: ピンクの恐竜 編集日時 2005-02-05 16:00 ]
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2005-02-05 20:30
setCharacterEncodingの件は知りませんでした。
ぜひ実装してみようと思います。
有難うございます!!

checkboxの件ですがやはり値がとれないので、もう少し調べてみます。
有難うございました。
taro
ぬし
会議室デビュー日: 2003/10/20
投稿数: 316
投稿日時: 2005-02-05 21:54
inputタグにvalueは書いてありますよね?
1

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