- PR -

Jspでの受け取った値に対するif判定文について

1
投稿者投稿内容
oba
会議室デビュー日: 2005/05/09
投稿数: 13
投稿日時: 2006-10-01 03:07
初めて投稿させて頂きます。
とても基本的なことですが、Jspでのif判定文で判定がされないので
是非、皆さんにご教授いただきたいと思います。

▼------サンプルソース------▼
sample.jsp

<html>
<script langage="javascript">
<!--
//自画面を呼び出す
function dispSelf()
{
document.F1.test.value="1";
document.F1.target="_self";
document.F1.action="sample.jsp";
document.F1.submit();
}
-->
</script>
<%
String strTest = request.getParameter("test");
boolean blnTest = false;
if(strTest == "1")
{
blnTest = true;
}
%>

<body>
<form name="F1" method="post">
<%=strTest%>
<%
if(blnTest == true)
{
%>
<!-- この部分が表示されません -->
ボタンが押されたよ。
<%
}
%>
<input type="button" value="テスト" onClick="dispSelf()">
<input type="hidden" name="test" value="0">
</form>
</body>
</html>
▲------サンプルソース------▲

以上がサンプルです。
"ボタンが押されたよ。 "という部分がどうしても表示されません。
"<%=strTest%>"この部分はボタンを押下すると"1"とちゃんと表示されます。

------開発環境------
OS:WindowsXP Pro
java:1.5.0_05
Tomcat:5.5

Eclipse3.1上で作成しています。
--------------------

------経験言語------
C#
ASP(VbScript)
--------------------

#あつかましいようですが、文章を書くのが苦手なので
不備などがありましたら指摘して頂けると幸いです。
flakwing
会議室デビュー日: 2006/07/21
投稿数: 7
投稿日時: 2006-10-01 03:38
引用:

obaさんの書き込み (2006-10-01 03:07) より:

if(strTest == "1")


とりあえず、文字列同士を比較する場合はequalsメソッドを使いましょう。
引用部分は下記のように変更してみてください。

コード:
if(strTest != null && strTest.equals("1"))

小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-10-01 03:55
引用:

引用部分は下記のように変更してみてください。

コード:

if(strTest != null && strTest.equals("1"))





このままでも動作するのですが、文字列定数と比較する場合、
コード:

if("1".equals(strTest))


というようにコーディングするとnullチェックが不要になり、
よりシンプルなコーディングにすることができますよ。
もしnullチェックを残す場合は、
コード:

if(null != strTest && strTest.equals("1"))


というように、左辺に代入不可能な値(nullまたは
メソッド呼び出しコード)を記述すると、誤って
コード:

if(null = strTest && strTest.equals("1"))


とイコールだけ記述してしまった場合、実行時エラー
では無くコンパイルエラーとして間違えを発見するこ
とができるので、より保険の利いた安全なコードにす
ることができますよ。
ご参考まで。



[ メッセージ編集済み 編集者: 小僧 編集日時 2006-10-01 04:20 ]
oba
会議室デビュー日: 2005/05/09
投稿数: 13
投稿日時: 2006-10-01 08:21
お二方とも解決法をお教え頂いてありがとうございます。
おかげで、無事に解決しました。

また、小僧さんのエラー対処法のコードの書き方も大変参考になります。
まだまだ勉強途中なので、つまづく事が多々あると思いますが、
今後ともよろしくお願いします。
1

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