gpt4 book ai didi

java - 如何将 boolean 变量作为 ModelAttribute 对象的字段发布到服务器端?

转载 作者:行者123 更新时间:2023-11-30 08:52:41 35 4
gpt4 key购买 nike

我有一个基于 Spring 框架的 Web 应用程序,我使用 ModelAttribute 注释将数据作为对象从客户端发布到服务器端。我有一个包含数据的实体 bean(稍后存储到数据库)。其中一个字段是 boolean 字段:

@Entity
@Table(name="PLAYER")
public class Player implements Serializable, JSONAble{
...
@Column(name="IS_HUNGARIAN")
private boolean isHungarian
...
}

我使用 jQuery 通过 AJAX 调用将数据发送到服务器端:

$.ajax({
type : "POST",
url : contextPath + 'saveEditedPlayer',
data: $('#editPlayerForm').serialize(),
success : function(result) {
alert('Success');
},error:function (xhr, ajaxOptions, thrownError){
}
});

在 Controller 中我收到这样的数据:

@RequestMapping("/saveEditedPlayer")
@ResponseBody
public String saveEditedPlayer(@ModelAttribute final Player player, @RequestParam(required = false) final String tsiAlso) {
final JSONObject result = new JSONObject();
//some more source code
return result;
}

除了 boolean 字段外,Player 对象中的所有字段均已填充。根据this链接的原因是 boolean 值作为字符串值发布到服务器端,这是真的。我有一个解决方案:我在 Entity bean 中有一个 String 字段,我可以在其中将 boolean 数据存储为 String 值(“true”或“false”),并且在该字段的 set 方法中我可以设置真正的 boolean 字段的值(感谢 Spring,它是自动完成的)。但我认为这不是解决这个问题的正确方法。

有没有一种方法可以在没有任何辅助变量的情况下发布我的 boolean 变量?提前感谢您提供的任何帮助,如果您需要更多信息,请询问我。

最佳答案

你需要这样命名你的东西:

播放器.java:

...
private boolean hungarian;

public boolean isHungarian() {...}

public void setHungarian(boolean hungarian) {...}
...

你的请求变量是 hungarian

关于java - 如何将 boolean 变量作为 ModelAttribute 对象的字段发布到服务器端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30108057/

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