【问题标题】:Set id of select options to jstl variable将选择选项的 id 设置为 jstl 变量
【发布时间】:2013-12-30 19:10:43
【问题描述】:

我有一个 JSP 页面,可以将一些信息从 DAO 加载到选择元素。 像这样的:

<select id="dropdown" onchange="changeKa()">
  <c:forEach var="ka" items="${KaList}">
    <option value="<c:out value='${ka.area}' />" 
      <c:if test="${param.selectValue == ka.area})"> selected </c:if>  >
      <c:out value="${ka.area}" />
    </option>
  </c:forEach>
</select>

我在哪里

<option value="<c:out value='${ka.area}' />" ... 

我想这样设置一个id:

<option value="<c:out value='${ka.area}' />" id="<c:out value='${ka.id_knowledgearea}' />" ...

但是出现如下错误:

Bad value "   " for attribute "id" on element "option": An ID must not contain whitespace.

我该如何解决这个问题?

【问题讨论】:

    标签: java jsp jstl jsp-tags


    【解决方案1】:

    尝试删除所有无用的空格,如下:

    <select id="dropdown" onchange="changeKa()">
        <c:forEach var="ka" items="${KaList}">
            <option value="<c:out value='${ka.area}'/>" <c:if test="${param.selectValue==ka.area})">selected</c:if>>
                <c:out value="${ka.area}"/>
            </option>
        </c:forEach>
    </select>
    
    <option value="<c:out value='${ka.area}'/>"
    
    <option value="<c:out value='${ka.area}'/>" id="<c:out value='${ka.id_knowledgearea}'/>"
    

    【讨论】:

    • 尝试删除id值中这一行的空格
    • 可能是您过滤器中 ${ka.area} 的值!检查里面有没有空间!
    【解决方案2】:

    解决方法...

    到目前为止,我通过将选项的标签属性分配给变量 id_knowledgearea 设法克服了这个问题。 像这样:

    <select id="dropdown" onchange="changeKa()">
         <c:forEach var="ka" items="${KaList}">
              <option value="<c:out value='${ka.area}'/>" label="<c:out value='${ka.id_knowledgearea}'/>"
                  <c:if test="${param.selectValue == ka.area})"> selected </c:if>  >
                  <c:out value="${ka.area}" />
              </option>
         </c:forEach>
    </select>
    

    无论如何,我想了解如何将变量“id_knowledgearea”分配给元素“option”的 id...

    【讨论】:

      【解决方案3】:

      试试这个:

      <option value="<c:out value='${ka.area}' />" <c:if test="${param.selectValue == ka.area}">selected="selected" </c:if> id="<c:out value='${ka.id_knowledgearea}'/>">
          <c:out value="${ka.area}" />
      </option>
      

      【讨论】:

      • 确保 id_knowledgearea 不包含空格。
      • 不,它是一个整数值
      猜你喜欢
      • 1970-01-01
      • 2019-09-29
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      • 2014-03-28
      • 2012-08-14
      相关资源
      最近更新 更多