2011-10-03 73 views
4

如何從JSP中的Expression Language(EL)獲得值到JavaScript函數的值?如何在JavaScript/jQuery函數中使用表達式語言(EL)?

在我的JSP頁面中我有:

<li>${state}</li> 
<input title="Show ${state}">Show</> 

而且我希望能夠從JSP得到${state}到JavaScript函數:

$('#input').click(function() { 
if ($(this).val() == "Show + ${state}">") 
{ 
    $(this).val("Show"); 
    $(this).attr("title", "Hide + ${state}"> "); 
} 
else 
{ 
    $(this).val("Hide"); 
    $(this).attr("title", "Hide + ${state}">"); 
} 
}); 

我想要的標題每個按鈕可以顯示俄亥俄州或隱藏俄亥俄州,但要更改<li>標記中的任何狀態。

回答

1

爲了使JSP內聯EL變量,JavaScript必須在.jsp文件內而不是.js文件中的<script>內。

或者,您也可以只做一個簡單的字符串替換第一個單詞或前四個字符的子字符串。這樣你就不需要JavaScript中的任何EL了,因此你可以把JS代碼放在它自己的.js文件中。

順便說一下,整個功能的邏輯流程本身就沒什麼意義。難道你不想要檢查val()"Hide"嗎?難道你不想在兩個條件之一的標題中使用"Show"

+0

我猜有些是OP的測試代碼只是爲了看看哪部分的'如果'實際上在運行。 – mellamokb

0

如果可能的值將是Show ${State}Hide ${State}那麼你真的只關心前四個字符:

if ($(this).val().substring(0, 4) == "Show") 
{ 
    ... 
} 
... 
相關問題