Sto utilizzando play framework 2.3.8 java e utilizzo di ajax per inviare un modulo ma non riesco a ottenere l'oggetto Form da quella richiesta.Il mio problema è spiegato sotto. Ho un modelloInvia modulo tramite ajax e ottieni un oggetto modulo in play framework java
@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
}
mia forma
<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;
});
Al momento della presentazione forma senza ajax poi giocare lega che richiedono i dati per modellare oggetti e possiamo ottenere oggetto Form come
Form<Permission> permissionFormData = Form.form(Permission.class).bindFromRequest();
e possiamo ottenere l'oggetto tramite permissionFormData.get()
poiché la richiesta è uguale per il modulo di posta con ajax e senza t ajax Nel caso di ajax che sto facendo la stessa cosa, ma quando provo ad ottenere i membri di entità da me ha dato un'eccezione Nessun valore con
Logger.info("---Permission one is "+permissionFormData.get().getPer1());
Che cosa sto facendo male qui? E v'è alcuna altri approcci per ottenere un oggetto dalla forma in gioco mentre si usa ajax. Voglio l'oggetto qui invece di JSON perché alla fine ho persistito l'oggetto con JSON, devo iterare tutto il suo valore chiave e creare un oggetto.
EDIT: quando provo semplicemente Ajax mi ha dato la stessa eccezione
$("#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;
});
L'approccio Attualmente sto usando sta passando un JSON dalla richiesta AJAX e nel mio controller faccio Json.fromJson()
convertire JSON da entità oggetto ma voglio solo sapere perché la richiesta AJAX si sta comportando in modo diverso rispetto al normale invio del modulo, cioè perché non sono in grado di ottenere un'entità dalla richiesta quando entrambe le richieste sono dello stesso tipo.
Grazie in anticipo.
Vedi che tutti i valori corretti sono POSTATI con Ajax? Puoi verificarlo con gli strumenti per gli sviluppatori Web, come in Chrome ... – adis
@adis sì Ho controllato la variabile 'per1' e posso vederlo passare dalla richiesta in chrome inspect element – codegasmer
Dal pannello" Rete "negli strumenti dev ? Per Firefox è il pannello Rete. Ti mostrerà la differenza, se ce n'è una tra i tuoi invii AJAX e html. Tu dici di aver ottenuto il valore variabile per1. Qualche altra differenza? Qualsiasi intestazione? Si dovrebbero espandere le richieste pubblicate sul controller e quindi confrontare entrambe le richieste. – Gyan