从java bean中选择下拉列表填充表单字段

时间:2013-03-25 19:06:30

标签: java jsp jstl javabeans el

我有一个包含5个文本字段的html表单。

我有一个用户对象的ArrayList,它是从servlet中的数据库查询创建的。

我已经使用jstl填充了一个选择选项的下拉菜单,它填充得很好。

<c:forEach var="user" items="${userList}">
<option>${user.userName}</option>
</c:forEach>

我要做的是在选择时将用户对象与数组列表隔离,并使用所选对象的其他属性填充表单字段,例如:

user.firstName,user.lastName,user.email等....

我一直在寻找答案,大部分时间没有运气。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

这可以在Javascript中轻松处理。 <option>标记具有value属性,您可以在其中“存储”要显示的数据。 JSTL会有分隔的字段,例如使用逗号:

<select id="names" onchange="fillInFields()">
   <c:forEach var="user" items="${userList}">
      <option value="${user.firstName},${user.lastName},...">${user.userName}</option>
   </c:forEach>
</select>

Javascript:

function fillInFields() {
   var fields = document.getElementById("names").value.split(",");
   document.getElementById("firstNameField").value = fields[0]; // name
   ...
}

为完整起见,字段:

<input id="firstNameField">
...

这种方法需要注意的一点是,这依赖于所选字段中不存在逗号字符,。在这种情况下,可以使用另一个分隔符。