我目前正在使用javaBean来保存/加载jsp的值。这里发生了什么:
我的jsp中有以下行:
<td><input class="partDescription" name="partDescription" style="width: 250px" type="text" readonly="readonly" value=<%=affectedBean.getPartDescription().get(i) %> /></td>
当我通过代码调试时,这是存储在索引0处的affectedBean.getPartDescription中的值:BK SLOPE CONTROLLER
然而,当页面完成加载时,它所显示的唯一内容是:BK
其他例子:
价值:ROLF REDESIGNED UL SUPPLY;显示:ROLF
价值:18燃油传感器;显示:18
任何人都有任何想法
答案 0 :(得分:0)
在HTML元素中,空格是HTML元素属性的特殊分隔符,如type
,value
等。
打印没有双引号的属性值时,如下所示
<input type="text" value=<%=affectedBean.getPartDescription().get(i) %> />
然后生成的HTML最终为
<input type="text" value=BK SLOPE CONTROLLER />
空间之外的所有部分都被解释为另一个属性。一个有点智能的语法荧光笔应该已经开启了一些亮点。它的颜色不同!
所以,你需要在值
附近加上引号<input type="text" value="<%=affectedBean.getPartDescription().get(i) %>" />
以便生成的HTML最终为
<input type="text" value="BK SLOPE CONTROLLER" />
无关具体问题,使用 scriptlet 是discouraged,您应该更喜欢使用taglibs / EL。假设您已将affectedBean
作为请求的属性,请执行以下操作:
<c:forEach items="${affectedBean.partDescription}" var="partDescription">
<input type="text" value="${partDescription}" />
</c:forEach>