使用jstl设置复选框“已选中”

时间:2014-06-18 22:10:52

标签: jsp checkbox foreach jstl

以下是jstl的片段,用于设置和显示一系列复选框:

<c:forEach var="item" items="${sessionAnswerObjects}">
    <c:set var="item1" value="${fn:split(item, vertBar)}"/>
    <input type="checkbox" id="eList" name="sessionSubEntityAnswer" value="${item1[0]}${vertBar}${item1[1]}${vertBar}${item1[2]}${vertBar}${item1[3]}${vertBar}${item1[4]}${vertBar}${item1[5]}" ${item1[4]=='I hate the food'?'checked':''}/> 
    <c:out value="${item1[4]}"></c:out>
    <br>
 </c:forEach>

&#34; c:out&#34;语句显示特定变量,但复选框未被&#34;检查&#34;如输入语句中所示。

jsp的输出部分是:

    How do you like the food?
        [] I Like the food
        [] I don't like the food
        [] I really, really don't like the food
        [] I hate the food

非常感谢上面给出的jstl的任何帮助。

谢谢,Roy W。

1 个答案:

答案 0 :(得分:0)

我经历了上面代码序列的无数测试迭代,但是尤里卡,我终于确定了“已检查”复选框错误的原因。在上面的初始代码段中,变量“vertBar”是unicode字符“\ u00A6”,后跟空格或“\ u00A6”。此字符“\ u00A6”被定义为一个断开的垂直条,而不是变量vertBar(垂直条)所暗示的。

问题在于分隔符之后的空间。如果在定义为特殊unicode字符的分隔字符串后面存在空格,则split函数无法为复选框设置“checked”。一旦我在unicode分隔符后删除了空格,分割功能就可以了。

我希望这有助于某人。

Roy W。