我如何用对象列表的属性填充?

问题描述 投票:0回答:1

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

我正在使用的控制器:

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}"/>
java jsp jstl
1个回答
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.
}
© www.soinside.com 2019 - 2024. All rights reserved.