Übergeordnete / untergeordnete Formulare bei Verwendung von Playframework mit Java

Ich habe eine "Frage" -Entität mit einer "Antwort", die eine Liste mit "Alternativen" wie folgt enthält:

public class Question extends BaseEntity {

    private String text;

    private String sourceCode;

    private String complement;

    private Answer answer;
}
public class Answer extends BaseEntity{
    private List<Alternative> alternatives;
}

Ich möchte ein Formular erstellen, in das der Benutzer eine Liste mit Fragen einfügt. Ich habe so viele Material- und SO-Fragen gelesen, aber ich kann nicht verstehen, wie ich mit Formularen genau das machen soll, was ich will. Ich weiß, dass ich es mit DynamicForms auch anders machen kann, das ist nicht das, was ich will. Meine Idee ist, dass es so gemacht werden könnte:

@(message: String, form: play.data.Form[Question])
@main("cadastrar questão") {

    <script src="@routes.Assets.at("javascripts/index.js")"></script>
    <div class="page-header">
        <h1>@message</h1>
    </div>
    <body>
        <style>
        .top-buffer { margin-top:12px ; }
        </style>
        <div class="container.fluid form-group">
        @helper.form(routes.Application.submit()) {

            <div class="row top-buffer">
                <label for="text">Enunciado:</label>
                <textarea id="text" name="text" class="form-control col-md-6" placeholder="Enunciado da questão" rows="5" value="@form("text").value()"></textarea>
            </div>

    ...    
            <div class="row top-buffer">
                <label for="complement">Corretas:</label>
                <input type="text" name="correct" class="form-control col-md-6" value="@form("complement.answer.alternatives[0]").value()">
            </div>

            <div class="row top-buffer">
                <div class="row top-buffer">
                    <input type="submit" class="btn btn-primary col-md-1" value="submit">
                </div>
            </div>
        }
        </div>
    </body>


}

Aber wenn ich versuche das Answer Objekt zu benutzen und es "Alternatives" ein großesNullPointerexception explodiert auf meinem Gesicht:

        final Form<Question> questionForm = f.bindFromRequest();
        final Question question = questionForm.get();
        System.out.println(question);
        System.out.println(question.getText());
        System.out.println(question.getSourceCode());
        System.out.println(question.getComplement());

//Nullpointer here:
        final List<Alternative> alternatives = 
question.getAnswer().getAlternatives();

        alternatives.forEach(p -> System.out.println(p));

Ich vermisse mehr Dokumentation und Beispiele dazu und zu anderen verwandten Dingen. Auch die offizielle Website bietet keine ausführlichen Beispiele. Vor allem im Umgang mit Java. Dies lässt vermuten, dass das Framework veraltet ist oder von anderen Technologien überholt wir

Ich verwende Version 2.4.6 von Play.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage