如何在JavaScript / jQuery函数中使用表达式语言(EL)?

时间:2011-10-03 23:55:35

标签: javascript jquery jsp el

如何从JSP中的Expression Language(EL)获取值到JavaScript函数?

在我的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>标记中的任何状态。

2 个答案:

答案 0 :(得分:1)

为了让JSP内联EL变量,JavaScript必须放在<script>文件中的.jsp而不是.js文件中。

或者,您也可以只对第一个单词或前四个字符的子字符串进行简单的字符串替换。这样您就不需要JavaScript中的任何EL,因此您可以将JS代码放在自己的.js文件中。

顺便说一句,你整个函数的逻辑流程本身就没什么意义。你真的不想检查val()"Hide"吗?难道你真的不想在两个条件之一的标题中使用"Show"吗?

答案 1 :(得分:0)

如果您的可能值为Show ${State}Hide ${State},那么您真的只关心前四个字符:

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