Play Framework 1.2.7将表单值传递给控制器

时间:2013-11-18 09:39:28

标签: java playframework playframework-1.x

所以我试图将表单中的值传递给控制器​​。然后控制器使用这些值来创建“课程”。我似乎无法传递数据,但正在创建课程。 这是我的观点

#{form @Courses.save()}
<div>
   Course Name: <input type="text" name="courseName"  />
</div>
<div>
  Course Code: <input type="text" name="courseCode"  /> 
</div>
<div>
  Course Description: <input type="text" name="courseDescription"  /> 
</div>
<div>
  Course Credit: <input type="text" name="courseCredit"  /> 
</div>
<div>
  Course Total Capacity: <input type="text" name="courseTotalCapacity"  /> 
</div>
<div>
  Course Is Active?: <input type="text" name="courseIsActive"  /> 
</div>
<div>
  Course Department: <input type="text" name="department"  /> 
</div>
<div>
   <input type="submit" value="Create Course" /> 
</div>
#{/form}

这是我的控制器方法

public static void save(String course_name, String course_code, String course_description,     String credit, String capacity, String isActive){
    Course course = new Course(course_name, course_code, course_description, credit, capacity, isActive).save();
    course.save();
    renderJSON(course);
}

2 个答案:

答案 0 :(得分:2)

HTML中的输入名称与actions方法的参数不匹配(而不是course_name,您需要编写courseName等等,就像在HTML中一样。)

public static void save(String courseName, String courseCode, String courseDescription,     String courseCredit, String courseTotalCapacity, String courseIsActive){
    Course course = new Course(courseName, courseCode, courseDescription, courseCredit, courseTotalCapacity, courseIsActive).save();
    course.save();
    renderJSON(course);
}

答案 1 :(得分:0)

在您的视图中,您可以将您的数据名称替换为course.Name,course.Code,...

#{form @Courses.save()}
    <input type="text" name="course.name"  />
    <input type="text" name="course.code"  />
    <input type="text" name="course.description"  />
    ...
#{/}

在你的控制器中,你可以这样写:

public static void save(Course course){
    course.save();
    renderJSON(course);
}