将select选项的id设置为jstl变量

时间:2013-12-30 19:10:43

标签: java jsp jstl jsp-tags

我有一个JSP页面,它将一些信息从DAO加载到select元素。 像这样:

<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.

我该如何解决这个问题?

3 个答案:

答案 0 :(得分: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}'/>"

答案 1 :(得分:1)

解决方法...

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

<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 ...

答案 2 :(得分:0)

试试这个:

<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>