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

Java 如何将布尔变量作为ModelAttribute对象的字段发布到服务器端?,java,jquery,ajax,spring,Java,Jquery,Ajax,Spring,我有一个基于Spring框架的web应用程序,我使用ModelAttribute注释将数据作为对象从客户端发布到服务器端。 我有一个包含数据的实体bean(稍后存储到数据库)。其中一个字段是布尔字段: @Entity @Table(name="PLAYER") public class Player implements Serializable, JSONAble{ ... @Column(name="IS_HUNGARIAN") private boolean isHungarian ...

我有一个基于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;
}
除布尔字段外,播放器对象中的所有字段都被很好地填充。根据link,原因是将布尔值作为字符串值发布到服务器端,这是真的。我有一个变通解决方案:我在实体bean中有一个字符串字段,在这里我可以将布尔数据存储为字符串值(“true”或“false”),在字段的set方法中,我可以设置真正的布尔字段的值(多亏了Spring,它是自动完成的)。但我认为这不是解决这个问题的正确方法

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

您需要将您的物品命名为:

@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.java:

...
private boolean hungarian;

public boolean isHungarian() {...}

public void setHungarian(boolean hungarian) {...}
...
然后,您的请求变量是
匈牙利语