Я использую play framework 2.3.8 java и используя ajax для отправки формы, но я не могу получить объект Form из этого запроса. Моя проблема объясняется ниже. У меня есть модель
@Entity
public class Permission {
@Id
@Column(name = "id", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String per1= "off";
private String per2= "off";
// getter setters
}
моя форма
<form id="form-permission">
<!--Setting "on" and "of" value from js-->
<input type="checkbox" id="per1" name="per1">
<input type="checkbox" id="per2" name="per2">
<input type="submit" >
</form>
$('#form-permission').on('submit',function(){
var uid=// id to update
myJsRoutes.controllers.MyController.updatePer(uid).ajax({
data : $("#form-permission").serialize(),
success : function(data) {
console.log(data);
});
return false;
});
При отправке формы без ajax, тогда играйте привязки, которые запрашивают данные для модели объекта, и мы можем получить объект Form, например
Form<Permission> permissionFormData = Form.form(Permission.class).bindFromRequest();
и мы можем получить объект permissionFormData.get()
, так как запрос одинаковый для почтовой формы с ajax и без ajax. В случае ajax я делаю то же самое, но когда я пытаюсь получить из него элементы Entity, Без исключения значения с
Logger.info("---Permission one is "+permissionFormData.get().getPer1());
Что я делаю неправильно здесь? И есть ли какие-либо другие подходы к получению объекта из формы в игре при использовании ajax. Мне нужен объект здесь вместо JSON, потому что в конце я сохранил объект с помощью JSON. для итерации всего его ключевого значения и создания объекта.
EDIT:, когда я пытаюсь просто ajax, он дал мне то же исключение
$("#form-permission").on('submit', function() {
var $this = $(this);
var uid=//some uid
$.ajax({
url: '/account/permission?id='+uid,
data: $this.serialize(),
type: 'POST'
});
return false;
});
Подход, который я использую в настоящее время, заключается в передаче JSON из запроса ajax, а в моем контроллере я делаю Json.fromJson()
для преобразования JSON из объекта сущности, но я просто хочу знать, почему запрос AJAX ведет себя иначе, чем нормальная форма submit, то есть почему я я не могу получить объект от запроса, когда оба запроса одного типа.
Спасибо заранее.