0

5つのテキストフィールドを持つhtmlフォームがあります。

サーブレットのデータベースクエリから作成されたユーザーオブジェクトのArrayListがあります。

jstlを使用して選択項目のドロップダウンメニューにデータを入力しましたが、正しく表示されます。

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

私がやろうとしているのは、選択時に配列リストからユーザーオブジェクトを分離し、フォームフィールドに次のような選択されたオブジェクトの他のプロパティを入力することです。

user.firstName、user.lastName、user.emailなど...

私はほとんど一日中答えを探していましたが、運がありませんでした。

どんな助けでも大歓迎です。

4

1 に答える 1

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

このアプローチでの注意点の1つ,は、選択したフィールドにコンマ文字が存在しないことに依存していることです。その場合、別の区切り文字を使用できます。

于 2013-03-25T21:46:49.453 に答える