gpt4 book ai didi

spring - javax.el.PropertyNotFoundException : Property 'name' not found on type java. lang.String

转载 作者:行者123 更新时间:2023-12-04 13:06:05 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





c:forEach throws javax.el.PropertyNotFoundException: Property 'foo' not found on type java.lang.String

(3 个回答)


5年前关闭。




我收到上面的错误。

我想要做的是编写一个应用程序,该应用程序接收未知数量的名称,然后将它们打印在新页面上。这应该是一个保龄球计分应用程序,但现在我只想得到一个名字列表。这个想法是让每个名字进入一个播放器对象,然后依次存储在播放器数组列表中。如果有人可以提供帮助,我将不胜感激。

这是我的 Controller 代码:

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);

}
}

这包含每个玩家的详细信息:
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;
}
}

这是所有游戏属性的代码,例如评分等。
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;
}
}

以下是我的JSP文件,先输出:
<%@ 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>

这是主页:
<%@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>

最佳答案

改这个 <c:forEach var="player" items="players"><c:forEach var="player" items="${players}">
作为您的引用“玩家”字符串。它试图在字符串中查找属性名称。

关于spring - javax.el.PropertyNotFoundException : Property 'name' not found on type java. lang.String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15072924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com