OK, also habe ich einige Probleme beim Abrufen von Daten aus einem Formular, um an eine Modellklasse zu binden, die ich habe.Formularüberprüfung in Play 2.0
Ich habe eine Klasse Frage, die im Grunde wie folgt aussieht:
@Entity
public class Question extends Model {
@Id @Required public int id;
public String title;
public String body;
...methods...
}
Also ich verwenden möchte diese als Vorlage eine Frage für ein Formular zu erstellen, für einen Benutzer, so ich eine statische Instanz (wie sie tun in den Proben)
final static Form<Question> question_form = form(Question.class);
So weit so gut, alles kompiliert. Das Problem kommt, wenn ich tatsächlich das Formular abschicken:
Form<Question> filled_form = new Form<Question>(Question.class).bindFromRequest();
Hier erhalte ich die Fehlermeldung:
[UnexpectedTypeException: No validator could be found for type: java.lang.Integer]
Mein Denken, wie so geht zu gehen ist ein Design-Muster zu verwenden, die:
1.) Erstellen Sie Vorlagenklassen speziell für Formulare, die keine Fremdschlüssel, IDs und Informationen enthalten, die nicht in einem für den Benutzer bestimmten Format vorliegen. (Dh, wenn die Question
einen Fremdschlüssel für Topic
hat, die QuestionForm
Klasse hätte ein String topic
Feld.
2.) Neue Methoden in dem Question
Modell, das so etwas wie getFormForQuestion(Question)
und getQuestionForForm(Form<Question>)
und dann verwenden Sie diese Methoden geht CRUD zu tun Funktionen.
Im Grunde interagieren der Benutzer und der Controller mit Forms, und dann weiß das Model, wie man diese Formulare nimmt und sie in Einträge in der Datenbank umwandelt.
Ist dies ein vernünftiger Weg? Oder gibt es einen besseren Weg, dies zu tun?
UPDATE:
Scheint festgelegt werden, wenn @GeneratedValue
Anmerkung anstatt die @Required
Anmerkung, aber ich bin immer noch neugierig in Bezug auf meine vorgeschlagenen Form Design-Muster.
Auch das Entfernen von @Required
scheint die Probleme zu beheben. Immer noch auf der Suche nach Kommentaren zum erwähnten Designmuster!
Sie brauchen nicht 'id', weil das von vererbt die Oberklasse 'Model'. –
Oh großartig, noch besser, denke ich. danke – wbarksdale
Hat das dein Problem gelöst? Soll ich das als Antwort auf diese Frage posten? –