【发布时间】:2015-05-07 17:34:59
【问题描述】:
我有一个基于 Spring 框架的 Web 应用程序,我使用 ModelAttribute 注释将数据作为对象从客户端发布到服务器端。 我有一个包含数据的实体 bean(稍后存储到数据库中)。其中一个字段是布尔字段:
@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){
}
});
在控制器中我收到这样的数据:
@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;
}
Player 对象中的所有字段都被很好地填充,除了布尔字段。根据this 链接,原因是布尔值作为字符串值发布到服务器端,这是真的。我有一个解决方案:我在实体 bean 中有一个字符串字段,我可以将布尔数据存储为字符串值(“true”或“false”),并且在字段的 set 方法中,我可以设置真正的布尔字段值(感谢 Spring,它是自动完成的)。但我认为这不是解决这个问题的正确方法。
有没有办法在没有任何帮助变量的情况下发布我的布尔变量? 感谢您提前提供任何帮助,如果您需要更多信息,请询问我。
【问题讨论】: