bean.getValue()只拉取部分值而不是整个值

时间:2011-04-22 22:05:19

标签: javascript html jsp javabeans

我目前正在使用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

任何人都有任何想法

1 个答案:

答案 0 :(得分:0)

在HTML元素中,空格是HTML元素属性的特殊分隔符,如typevalue等。

打印没有双引号的属性值时,如下所示

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