2017-08-24 18 views
2

私のSpring MVCプロジェクトでは、JSPビューのコントローラから1つのブール変数をモデル属性として取得しています。ブール変数の値に基づいて、私はJsコードを実行する必要があります。だから私はifステートメントの値を比較しています。IF文のJavaScriptブール変数の比較

春コントローラでブール変数は、次のとおりです:JSPビューで受け取ったとされている

boolean isAdmin; 

私ができる

コードはこのようなものである:それは私に正しい出力を与えていませんアクセス次のように:私のJSPビューで

$(isAdmin) 

を次のように私がやっている:

もし上記の文でそう
<script> 
    alert('${isAdmin}') // which gives the correct value .i.e : true/false 

    if('${isAdmin}'){ 

    // some code 
    } 

</script> 

isAdminの値がブロック場合、それは実行すべきではないよりも、ですが、それは偶数値がで実行されない場合。

私はまた、次のようにブール変数の値を比較した:

if('${isAdmin}' == true) 
if('${isAdmin}' === true) 

しかし、これらの両方も動作していません。

私は間違っていますか?これに対して正しい比較方法は何ですか?

+3

「$ {isAdmin}」===「true」を使用してください。 – alexmac

+0

@alexmacありがとうございました。あなたの解決策は正しいです。 –

+1

答えはあなたの質問です。あなたは一重引用符で囲んでいます。つまり、「真」ではなく「真」です。これはテキストです。 –

答えて

2

た値は文字列であり、あなたがブール値を期待している、'${isAdmin}'は、Booleanストリング値に対してチェックする必要がありますので。既に誰かがコメントしたように、それは'${isAdmin}' === 'true'でなければなりません。

if('${isAdmin}' === 'true') { 
    // TODO 
} 

いつも実行している理由は、JavaScriptがif式を正当化するためです。たとえばif("false")について私の知る限り、あなたのシナリオを理解し、あなたは、サーバー側のブール変数isAdmin(JSP)を持つ真のevalutesされ、

if("false"){ 
 
alert("What ??"); 
 
}

1

なぜ値を引用符なしで使用しないのですか?

if (${isAdmin}) { 
+2

JSPはそれを認識せず、コンパイラエラーを投げます –

+0

はい