2014-01-13 64 views
0

爲什麼一個JSP腳本像下面 假設狀態裏面,我們窩JSP表達式爲true我們爲什麼要分開jsp scriptlet和jsp表達式?

if(state) { %> 

    <%= "yes"%> 

<%} else { %> 

    <%= "no"%> 

%<}%> 
+0

現在,我得到了答案。 Scriptlet代碼直接插入到servlet中,沒有任何改變。所以如果我們放置任何嵌套在scriptlet中的表達式,這是一個編譯時錯誤。 –

回答

0

<%= foo %>意味着:評估FOO,並將其打印到JSP作家。所以,如果你想要做的是一個scriptlet裏面,您只需要

<% out.print(foo); %> 

你上面的例子可以這樣寫爲

<% 
if(state) { 
    out.print("yes"); 
} else { 
    out.print("no"); 
} 
%> 

這就是說,小腳本不宜使用,在所有,並適合年齡。瞭解JSP ELJSTL,並根據需要使用其他自定義標籤。但不要使用scriptlet。

如果state是一個頁面或請求屬性,例如,上面的代碼可以寫成

${state ? "yes" : "no"} 
+0

感謝您的建議。只是爲了好奇,爲什麼我們應該在jsp scriptlet中嵌套jsp表達式。不能我們把它寫在一邊jsp腳本? –

+0

這不是你問你的問題,我給了答案嗎?如果不是,請解釋你的意思。舉例說明你希望能做什麼。 –

+0

<% 如果(州){ <%= "yes"%> }其他{ <%= "no"%> } %> –

相關問題