發(fā)布人:時(shí)時(shí)
表達(dá)式語言
在 JSP 1.2 中,可以使用靜態(tài)字符串或表達(dá)式(如果允許的話)指定 JSP 操作的屬性。例如,在清單 2 中,對 操作的 name 和 property 屬性指定了靜態(tài)值,而用表達(dá)式指定了其 value 屬性。這個(gè)操作的效果是將請求參數(shù)的當(dāng)前值賦予命名的 bean 特性。以這種形式使用的表達(dá)式被稱為請求時(shí)屬性值(request-time attribute value),這是構(gòu)建到 JSP 規(guī)范中的用于動(dòng)態(tài)指定屬性值的唯一機(jī)制。
清單 2. 合并請求時(shí)屬性值的 JSP 操作
value='<%= request.getParameter("timezone") %>'/>
因?yàn)檎埱髸r(shí)屬性值是用表達(dá)式指定的,所以它們往往有和其它腳本元素一樣的軟件維護(hù)問題。因此,JSTL 定制標(biāo)記支持另一種用于指定動(dòng)態(tài)屬性值的機(jī)制。可以用簡化的表達(dá)式語言(EL)而不使用完整的 JSP 表達(dá)式來指定 JSTL 操作的屬性值。EL 提供了一些標(biāo)識符、存取器和運(yùn)算符,用來檢索和操作駐留在 JSP 容器中的數(shù)據(jù)。EL 在某種程度上以 EcmaScript(請參閱參考資料)和 XML 路徑語言(XML Path Language,XPath)為基礎(chǔ),因此頁面設(shè)計(jì)人員和程序員都應(yīng)該熟悉它的語法。EL 擅長尋找對象及其特性,然后對它們執(zhí)行簡單操作;它不是編程語言,甚至不是腳本編制語言。但是,與 JSTL 標(biāo)記一起使用時(shí),它就能使用簡單而又方便的符號來表示復(fù)雜的行為。EL 表達(dá)式的格式是這樣的:用美元符號($)定界,內(nèi)容包括在花括號({})中,如清單 3 所示。
清單 3. 說明 EL 表達(dá)式定界符的 JSTL 操作