- - PR -
session・requestで取得する・・・NULLと””について
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-02-05 10:20
req.getParameter("LOGIN_ID");や
wkLoginID=(String)session.getAttribute("LoginID"); で取得する値が入っていない場合、それを画面に表示したらnullと表示してしまいます。 setやgetの時に、nullだったらスペースを入れるなどと処理をやっても、 またその値を表示した場合に、nullと表示されてしまいます。 nullと""は同じ値なのでしょうか? それと回避できる方法はありますでしょうか? よろしく御願いいたします。 | ||||
|
投稿日時: 2004-02-05 10:33
Nullと""は全然違いますよー。
request.getParameterやgetAttributeなどで 格納されていないkey(ここで言うLOGIN_IDとか?) を指定するとNullが取れます。 それを表示したらnullと表示されます。 >setやgetの時に、nullだったらスペースを入れるなどと処理をやっても、 >またその値を表示した場合に、nullと表示されてしまいます。 どういう処理しているか具体的にわからないのですが、こういう ことやってれば変換されるハズですけどねぇ。 例えば私なんかは
なんていうメソッドかませて変換させたりしてますけど。 String str = Util.getNotNullString( request.getAttribute( "HOGE" ) ); | ||||
|
投稿日時: 2004-02-05 10:45
こんにちは。
<c:out>タグを使えばNullは表示されないようになったような気がします。 | ||||
|
投稿日時: 2004-02-05 10:55
(株)ぽちさんありがとうございます。
私が書いているのはこんなソースです。 public void setJOB_NAME(String Wkdata){ if (Wkdata==null){ Wkdata=""; } wkJOB_NAME=Wkdata; } 言われたとおりにやってみたのですが、やはりnullで表示されてしまいました 涙。 もう少し調べてみます。 ありがとうございました | ||||
|
投稿日時: 2004-02-05 11:12
これってJSPの中でやっているソースですか? JSPの中でメソッド定義するのには特殊な定義の仕方が あったような・・。<%! %>でしたっけ・・。使ったこと ないんで微妙です。 あとそのメソッドの中のwkJOB_NAMEという変数が私には 理解できないのですが。。 その変数は一体どこから来ているものでしょうか。 | ||||
|
投稿日時: 2004-02-05 11:21
返答ありがとうございます。
これは、Beansの中で書いているソースです。。。説明が足りなくて申し訳ないです。 サーブレットで db.setJOB_NAME(req.getParameter("JOB_NAME")); BEANSで public void setJOB_NAME(String Wkdata){ if (Wkdata==null){ Wkdata=""; } wkJOB_NAME=Wkdata; } wkJOB_NAMEはBEANS内で使っている変数です。。。 初心者なので大事な部分が抜けているかもしれないです。 とりあえず、(株)ぽち様の関数を使わせて頂いて、 sessionの部分は、nullが表示されないようになりました。 あとは、サーブレットとbeans間のリクエスト部分だけです。 ありがとうございました。 | ||||
|
投稿日時: 2004-02-05 11:59
public void setJOB_NAME(String Wkdata){
if (Wkdata==null){ Wkdata=""; } Javaでは、こんなことやってもWkdataの値は変わりませんよ。 アドレス渡しのC言語とは違います。 | ||||
|
投稿日時: 2004-02-05 12:56
> Javaでは、こんなことやってもWkdataの値は変わりませんよ。
> アドレス渡しのC言語とは違います。 なにを勘違いしておられるのかわかりませんが、もちろん変わります。 Cで、 void setJOB_NAME(struct hogeBean* bean, char* wkdata) { if(wkdata == NULL){ wkdata = ""; } bean->wkJOB_NAME = wkdata; } とするのと同じ同じです。 キャサリンのコードであれば、setJOB_NAME(null)された場合に wkJOB_NAMEの値は "" になります。 getJOB_NAME() から 表示までのコードを疑った方が良いでしょう。 (あるいは、setしたBeanとgetしたBeanが同一ではないのかも?) | ||||
