以下是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。
答案 0 :(得分:0)
我经历了上面代码序列的无数测试迭代,但是尤里卡,我终于确定了“已检查”复选框错误的原因。在上面的初始代码段中,变量“vertBar”是unicode字符“\ u00A6”,后跟空格或“\ u00A6”。此字符“\ u00A6”被定义为一个断开的垂直条,而不是变量vertBar(垂直条)所暗示的。
问题在于分隔符之后的空间。如果在定义为特殊unicode字符的分隔字符串后面存在空格,则split函数无法为复选框设置“checked”。一旦我在unicode分隔符后删除了空格,分割功能就可以了。
我希望这有助于某人。
Roy W。