Java 表单创建具有复杂参数的ebean

Java 表单创建具有复杂参数的ebean,java,playframework,playframework-2.0,Java,Playframework,Playframework 2.0,我是个新手!2.现在我再也无法解决问题了。我有一个模型实体B,它有一些属性,如id、name和一个更复杂的属性a,具有@manytone关系A本身只有一些属性,如id和name 有点抽象,但希望足够: A: @Entity public class A extends Model { @Id public Long id, @Required public String name; ... public static void create(

我是个新手!2.现在我再也无法解决问题了。我有一个模型实体B,它有一些属性,如id、name和一个更复杂的属性a,具有@manytone关系A本身只有一些属性,如id和name

有点抽象,但希望足够:

A

@Entity
public class A extends Model {
    @Id 
    public Long id,
    @Required
    public String name;

    ...

    public static void create(Exam exam) {
            exam.save();
    }
}
@Entity
public class B extends Model {
    @Id 
    public Long id,
    @Required
    public String name;
    @Required
    public A a;        

    ...

    public static void create(Exam exam) {
            exam.save();
    }
}
B

@Entity
public class A extends Model {
    @Id 
    public Long id,
    @Required
    public String name;

    ...

    public static void create(Exam exam) {
            exam.save();
    }
}
@Entity
public class B extends Model {
    @Id 
    public Long id,
    @Required
    public String name;
    @Required
    public A a;        

    ...

    public static void create(Exam exam) {
            exam.save();
    }
}
这两个模型的控制器非常简单,同样抽象:

public class BCtrl extends Controller {

    static Form<Exam> bForm = Form.form(B.class);

    public static Result bs() {
        return ok(views.html.b.render(B.all(), bForm));
    }

    public static Result newB() {
        Form<Exam> filledForm = bForm.bindFromRequest();
        List<Lecturer> lecturers = Lecturer.all();

        if (filledForm.hasErrors()) {
            return badRequest(views.html.b.render(Exam.all(), filledForm));
        }
        else {
            B.create(filledForm.get());
            return redirect(routes.BCtrl.bs());
        }
    }
}
@(bs: List[B], bForm: Form[B])

@import helper._
@import helper.twitterBootstrap._

@main("B") {
    <ul>
        @for(b <- bs) {
            <li>
                @b.name
            </li>
        }
    </ul>
    @helper.form(action = routes.ExamCtrl.newExam()) {
        @inputText(examForm("name"))
        @inputText(examForm("a"))
        <input type="submit" value="Create">
    }
}
公共类BCtrl扩展控制器{
静态形式B形式=形式.形式(B类);
公共静态结果bs(){
返回ok(views.html.b.render(b.all(),bForm));
}
公共静态结果newB(){
Form filledForm=bForm.bindFromRequest();
列出讲师=讲师。全部();
if(filledForm.hasErrors()){
返回badRequest(views.html.b.render(Exam.all(),filledForm));
}
否则{
B.create(filledForm.get());
返回重定向(routes.BCtrl.bs());
}
}
}
我的问题来了。Scala HTML文件与表单一起创建一个新的B。再次摘要:

public class BCtrl extends Controller {

    static Form<Exam> bForm = Form.form(B.class);

    public static Result bs() {
        return ok(views.html.b.render(B.all(), bForm));
    }

    public static Result newB() {
        Form<Exam> filledForm = bForm.bindFromRequest();
        List<Lecturer> lecturers = Lecturer.all();

        if (filledForm.hasErrors()) {
            return badRequest(views.html.b.render(Exam.all(), filledForm));
        }
        else {
            B.create(filledForm.get());
            return redirect(routes.BCtrl.bs());
        }
    }
}
@(bs: List[B], bForm: Form[B])

@import helper._
@import helper.twitterBootstrap._

@main("B") {
    <ul>
        @for(b <- bs) {
            <li>
                @b.name
            </li>
        }
    </ul>
    @helper.form(action = routes.ExamCtrl.newExam()) {
        @inputText(examForm("name"))
        @inputText(examForm("a"))
        <input type="submit" value="Create">
    }
}
@(bs:List[B],B形式:Form[B])
@导入助手_
@导入helper.twitterBootstrap_
@主要(“B”){
    @(b好的,明白了,通过

    @inputText(examForm("a.id"))
    
    我能够提供objectA的id。使用带有所有可能A选项的HTML select元素有助于选择正确的一个