Play Framework 1.2.7 将表单值传递给控制器
Posted
技术标签:
【中文标题】Play Framework 1.2.7 将表单值传递给控制器【英文标题】:Play Framework 1.2.7 pass form values to controller 【发布时间】:2013-11-18 09:39:28 【问题描述】:所以我试图将值从我的表单传递给控制器。然后控制器使用这些值来创建“课程”。我似乎无法传递数据,但正在创建课程。 这是我的看法
#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);
【问题讨论】:
【参考方案1】:您在 html 中的输入名称与操作方法的参数不匹配(而不是 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);
【讨论】:
【参考方案2】:在您看来,您可以将数据名称替换为 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);
【讨论】:
以上是关于Play Framework 1.2.7 将表单值传递给控制器的主要内容,如果未能解决你的问题,请参考以下文章
Play Framework 1.2.7 添加选择标签到表单标签作为输入字段
如何通过json暴露play framework 1.2.7中的内部错误消息id?