2013-06-19 107 views
1

我试着用2个不同的功能onChange事件如下:JSTL标签

<html:select property="distributionCategoryCode" tabindex="5" onchange="<c:choose><c:when test="${model.editT == true}">enableTextboxDirect('${model.dtxtrmks}');</c:when><c:otherwise>enableTextboxDirect();</c:otherwise></c:choose>" > 

但是,让JSP错误如下:

期待引述值,很有个性: = 属性:$ {model.editTaxes不是有效属性名称 期待报价值,得到字符:t

有没有输入?

回答

2

您不能像这样任意嵌套JSP标签,它不是合法的JSP(或XML)。

您需要单独设置值。

在这种情况下,我几乎没有看到在渲染输出中特殊情况的原因,而是将两个参数传递给enableTextboxDirect。我没有看到用其他方式去做的用例。

<html:select property="distributionCategoryCode" 
      onchange="enableTextboxDirect(${model.editT}, '${model.dtxtrmks}')> 

即使你不得不写一行代码JS包装的情况下,你不能修改enableTextboxDirect仍然比费心去改变整个属性更好的解决方案。

+1

@ dave ...发送第二个参数的选项是我的第一选择,但我不想更改现有函数,因为它在应用程序的许多地方都使用过。所以想知道JSTL是否可以完成... – JNPW

+1

@JNPW这就是为什么我建议围绕它的JS包装。是的,通过设置一个新的JSTL可访问变量,这是我首先提出的。只要将相应的JS字符串放入属性中即可。 –