Java Playframework从嵌套控制器加载表单

Java Playframework从嵌套控制器加载表单,java,playframework,Java,Playframework,我想将表单从嵌套控制器传递到视图 以下是我的设置: app | --controllers | --appointment | -- Appointment.java | -- views | -- appointment | -- create.scala.html 路线: # Appointment GET

我想将表单从嵌套控制器传递到视图

以下是我的设置:

app
 |
 --controllers
       |
       --appointment
              |
              -- Appointment.java


 |
 -- views
      |
      -- appointment
              |
              -- create.scala.html     
路线:

# Appointment
GET /appointment/create         controllers.appointment.Appointment.create()
POST /appointment               controllers.appointment.Appointment.validate()
预约类别:

public class Appointment extends Controller {

public static Result create() {
    List<Procedure> procedures = Procedure.find.all();
    List<Employee> doctors = Employee.find.where().eq("role", "doctor").findList();
    return ok(create.render(Form.form(CreateAppointment.class), procedures, doctors));

}

public static Result validate(){
    Form<CreateAppointment> registerForm = Form.form(CreateAppointment.class).bindFromRequest();

        return badRequest(create.render(registerForm));
}

public static Result edit(Integer id) {
    return TODO;
}

public static Result delete(Integer id) {
    return TODO;
}

public static Result all() {
    return TODO;
}

public static class CreateAppointment {

    public Date endDate;
    public Date startDate;

    public String reason;

    public String validate() {
        if (startDate.after(endDate))
            return "End date must be after start Date";

        return null;
    }

}
我知道错误了

[error] MyPath\app\views\appointment\create.scala.html:1: type CreateAppointment is not a member of controllers.appointment.ReverseAppointment

在PlayFramework中,控制器中的每个包都有自己的routes包。例如,您要查找的url是以下两个路由之一:

controllers.appointment.routes.Appointment.create()
controllers.appointment.routes.Appointment.validate()

看起来还可以,但是[error]C:\Users\User\USI-SEM\app\views\appointment\create.scala.html:0:type cr-eate不是controllers.appointment.reverseappoint的成员[error]C:\Users\User\USI-SEM\app\views\appointment\create.scala.html:1:type cr-eate不是controllers.appointment.ReverseAppointment的成员[error]@(form:form:form:form)[controllers.appointment.routes.appointment.create],过程es:List[Procedure],医生:List[Employee])| |更改的行现在是
@(表单:表单[controllers.appointment.routes.appointment.create],过程:List[Procedure],医生:List[Employee])
它必须“吃”内部表单类,不是方法,但无论哪种方式,它都无法工作。我设法解决它,似乎play framework包含来自模型和控制器的所有文件,我有两个同名文件,+路径错误
[error] MyPath\app\views\appointment\create.scala.html:1: type CreateAppointment is not a member of controllers.appointment.ReverseAppointment
controllers.appointment.routes.Appointment.create()
controllers.appointment.routes.Appointment.validate()