gpt4 book ai didi

java - JAXB list unmarshall 不显示完整列表,只显示最后一个对象

转载 作者:行者123 更新时间:2023-11-30 08:43:17 25 4
gpt4 key购买 nike

所以我没有什么问题。我有这样的 XML:

<Game>
<GameTitle>Grand Theft Auto: Vice City</GameTitle>
<Genres>
<genre>Action</genre>
<genre>Sandbox</genre>
</Genres>
</Game>

我想在我的 JSP 文件“Action”和“Sandbox”中显示。但它只显示“沙盒”。这是我的代码:

@XmlRootElement(name = "Game")
public class Game {
private String gameTitle;
private List<Genres> genres = new ArrayList<Genres>();

public List<Genres> getGenres() {
return genres;
}

@XmlElement(name = "Genres", type = Genres.class)
public void setGenres(List<Genres> genres) {
this.genres = genres;
}

public String getGameTitle() {
return gameTitle;
}

@XmlElement(name = "GameTitle")
public void setGameTitle(String gameTitle) {
this.gameTitle = gameTitle;
}
}

还有我的流派类:

@XmlRootElement(name = "Genres")
public class Genres {
private String genre;

public String getGenre() {
return genre;
}

@XmlElement(name = "genre")
public void setGenre(String genre) {
this.genre = genre;
}
}

我尝试用这两种方式在 JSP 中显示它:

<c:forEach items="${game.genres}" var="item">
${item.genre}<br>
</c:forEach>

0: ${game.genres[0].genre}
1: ${game.genres[1].genre}
2: ${game.genres[2].genre}

但它只返回 Sandobx0: Sandbox 1: 2:。有人可能知道我做错了什么?

最佳答案

如果替换 List<Genres>,您的代码可以正常工作至 List<String> .

类似的东西:

@XmlRootElement(name = "Game")
@XmlAccessorType(XmlAccessType.FIELD)
public class Game {
@XmlElement(name="GameTitle")
private String gameTitle;

@XmlElementWrapper(name="Genres")
@XmlElement(name="genre")
private List<String> genres;

public List<String> getGenres() {
return genres;
}


public void setGenres(List<String> genres) {
this.genres = genres;
}

public String getGameTitle() {
return gameTitle;
}

public void setGameTitle(String gameTitle) {
this.gameTitle = gameTitle;
}
}

问题可能是您的流派是简单的字符串。

关于java - JAXB list unmarshall 不显示完整列表,只显示最后一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34344847/

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