如何使用对象列表的属性填充<form:select>?

时间:2019-10-06 23:14:03

标签: java jsp jstl

我正在尝试创建一个页面,我可以在其中一个字段中选择球员的姓名,而在另一个字段中显示球员的年龄。我编写了用于选择名称的代码,但是使用了字符串列表。有没有一种方法可以传递列表变量,然后在下拉列表中选择名称,年龄框也会相应更改?

我现在正在使用的控制器:

public ModelAndView getPlayers(ModelAndView model) {
    List<Player> players = findAllPlayers();
    List<String> playerNames = new ArrayList<String>();
    for ( Player player : players){
        playerNames.add(player.netName();
    }

    model.addObject("players", playerNames);
    model.setViewName("getPlayer");
    return model;
}

我想使用的控制器:

public ModelAndView getPlayers(ModelAndView model) {

    List<Player> players = findAllPlayers();

    model.addObject("players", players);
    model.setViewName("getPlayer");
    return model;
}

我当前用于下拉菜单的jsp页面:

<form:select path="players" name="players" items="${players}" id="players" class="form-control" value="${selectedPlayer}"/>

1 个答案:

答案 0 :(得分:0)

您可以在<form:options>代码中使用<form:select>标签。

例如,您可以执行以下操作:

<form:select id="playerNameDropdown" path="playerName">
  <form:option value="-" label="--Please Select"/>
  <form:options items="${players}" itemValue="playerId" itemLabel="playerName"/>
</form:select>

也供您参考,请参阅spring文档。 https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-view-jsp-formtaglib-optionstag

编辑:根据您的年龄选择下拉菜单要求,您可以在播放器名称onchange下拉菜单中使用<form:select>属性。

示例:

<form:select id="playerNameDropdown" path="playerName" onchange="changeAgeDropdown()">
</form:select>

function changeAgeDropdown() {
   var selectedPlayer = $("#playerNameDropdown").val();
   //Change your second dropdown here.
}
相关问题