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()