This question already has an answer here:
I'm getting the error above.
What i'm trying to do is write an app that takes in an unknown number of names, then prints them out on a new page. This is supposed to be for a bowling scoring app, but for now I just want to get a list of names. The idea is for each name to go into a player object, then in turn be stored in the players arraylist. If anyone can help, I would appreciate it.
This is my controller code:
package multiplayergame; import java.util.ArrayList; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.SessionAttributes; import org.springframework.web.servlet.ModelAndView; @Controller @SessionAttributes public class MultiplayerController { int score; int roll; Game game = new Game(); GameProperties gameProps = new GameProperties(); int playerNo = 0; ArrayList<PlayerGame> players = new ArrayList<>(); PlayerGame player; @RequestMapping(value = "/home", method = RequestMethod.GET) public ModelAndView home() { return new ModelAndView("home", "command", gameProps); } @RequestMapping(value = "/nextName", method = { RequestMethod.POST, RequestMethod.GET}) public ModelAndView homeNext(MContact mcontact, BindingResult result) { player = new PlayerGame(); player.setName(mcontact.getName()); players.add(player); gameProps.setPlayers(players); playerNo++; return new ModelAndView("home", "command", gameProps); } @RequestMapping(value = "/test", method = RequestMethod.POST) public ModelAndView playNext(GameProperties gameProps2, ModelMap model) { model.addAttribute("players", gameProps.getPlayers()); model.addAttribute("name", gameProps.getPlayers().get(playerNo).getName()); return new ModelAndView("test", "players", gameProps2); } }
This holds details for each player:
package multiplayergame; public class PlayerGame { private int score; private int pins; private String name; private int roll; private int nOfPlayers; private int playerNo; Game game = new Game(); public Game getGame() { return game; } public void setGame(Game game) { this.game = game; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public int getPins() { return pins; } public void setPins(int pins) { this.pins = pins; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getRoll() { return roll; } public void setRoll(int roll) { this.roll = roll; } public int getnOfPlayers() { return nOfPlayers; } public void setnOfPlayers(int nOfPlayers) { this.nOfPlayers = nOfPlayers; } public int getPlayerNo() { return playerNo; } public void setPlayerNo(int playerNo) { this.playerNo = playerNo; } }
This is the code for all Game properties, such as scoring etc.
package multiplayergame; import java.util.ArrayList; public class GameProperties { private int score; private int pins; private String name; private int roll; private int nOfPlayers; PlayerGame player; private ArrayList<PlayerGame> players; private int playerNo; public int getScore() { return score; } public void setScore(int score) { this.score = score; } public int getPins() { return pins; } public void setPins(int pins) { this.pins = pins; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getRoll() { return roll; } public void setRoll(int roll) { this.roll = roll; } public int getnOfPlayers() { return nOfPlayers; } public void setnOfPlayers(int nOfPlayers) { this.nOfPlayers = nOfPlayers; } public ArrayList<PlayerGame> getPlayers() { return players; } public void setPlayers(ArrayList<PlayerGame> players) { this.players = players; } public int getPlayerNo() { return playerNo; } public void setPlayerNo(int playerNo) { this.playerNo = playerNo; } }
The following are my JSP files, the output first:
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head> <title>Test output</title> </head> <body> <h2>Test Roll</h2> <c:forEach var="player" items="players"> Name <c:out value="${player.name}"/><p> </c:forEach> </body> </html>
This is the home page:
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <html> <head> <title>Bowling</title> </head> <body> <h2>Welcome players!</h2> <h2>Please enter your names.</h2> <form:form method="post" action="/multiplayergame/nextName"> <table> <tr> <td><form:label path="name">Name</form:label></td> <td><form:input path="name" /></td> </tr> <tr> <td colspan="2"> <input type="submit" name = "button" value="Next Player"/> </td> </tr> </table> </form:form> <form:form method="post" action="/multiplayergame/test"> <tr> <td colspan="2"> <input type="submit" name = "button" value="Play"/> </td> </tr> </form:form> </body> </html>