如何绑定在JSP领域的动态列表(How to bind a dynamic list of fiel

2019-07-31 04:53发布

我建立一个JSP页面进入足球比赛的结果。 我得到的悬而未决的游戏列表,我想一一列举如下:

team1 vs team4 
    [hidden field: game id]  
    [input field for home goals]  
    [input field for away goals]

team2 vs team5 
    [hidden field: game id]  
    [input field for home goals]
    [input field for away goals]

我从来不知道有多少场比赛将陆续上市。 我试图找出如何设置的绑定,以便在表单提交后的控制器能够访问这些字段。

是否有人可以指导我在正确的方向。 我使用Spring MVC的3.1

Answer 1:

Spring可以绑定索引属性 ,所以你需要创建游戏的信息对象对你的命令,就像一个列表:

public class Command {
   private List<Game> games = new ArrayList<Game>();
   // setter, getter
}

public class Game {
   private int id;
   private int awayGoals;
   private int homeGoals;
   // setters, getters
}

在你的控制器:

@RequestMapping(value = "/test", method = RequestMethod.POST)
public String test(@ModelAttribute Command cmd) {
   // cmd.getGames() ....
   return "...";
}

在JSP中,你将不得不设置,如输入的路径:

games[0].id
games[0].awayGoals
games[0].homeGoals 

games[1].id
games[1].awayGoals
games[1].homeGoals 

games[2].id
games[2].awayGoals
games[2].homeGoals 
....

如果我没有记错,在春季3 自动增长藏品现在是结合列出的默认行为,但对于较低的版本中,你不得不使用AutoPopulatingList而不只是一个ArrayList(只是作为参考: Spring MVC和处理动态形式的数据:将AutoPopulatingList )。



文章来源: How to bind a dynamic list of fields in a JSP