比如var planId = xxArray[0];
<dataset  seriesName='test'><c:forEach var='item' items='${planInfos}' ><c:if test='${item.planId == planId }'> <set value='${item.cnt}'/></c:if></c:forEach></dataset>"上面红色的部分总是被认为是一个字符串进行处理。怎样才能让他成为planId这个变量的值呢?

解决方案 »

  1.   

    页面里用不了变量吧,除非用<% %>这个
      

  2.   

    ${planInfos}
    ${item.planId == planId }这些是什么玩意? javascript变量?
      

  3.   

    我不确定,但你可以试试:
    <c:if test='${item.planId ==eval(planId) }'> 
      

  4.   

    我也不确定 或许可以把那个JS变量放在一个input里
    然后${requestScope.控件的name} 
      

  5.   


    不行,报 The function eval must be used with a prefix when a default namespace is not specified请问<c:set>定义的变量是不是不能修改它的值?
      

  6.   

    这个提示是说,你的默认命名空间没有显式指明直接使用eval.所以使用前应该加前缀(应该先定义一下)。
    VB里是这样使用eval的:
    1、引用script control 1.0控件
    2、例子:
    Dim e As New ScriptControl
    e.Language = "VBScript"
    a = 1
    b = 2
    Debug.Print e.Eval(a + b)==============
    所以,你再查查你的命名空间是否支持eval再说吧
      

  7.   

    把planId 放到页面缓存里边
      

  8.   

    楼主,哪些代码运行在server端,哪些运行在client端,你还需要先弄明白啊.
    c:if是运行在服务器端的,而var planid是运行在浏览器里的