Question

So I am trying to pass values from my form to the controller. The controller then uses those values to create a "Course". I can't seem to pass the data but courses are being created. Here is my view

#{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}

And here is my controller method

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);
}
Was it helpful?

Solution

Your input names in the HTML are not matching the actions method's parameters (Instead of course_name you need to write courseName and so on, like in the 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);
}

OTHER TIPS

In your view you could replace your data name to 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"  />
    ...
#{/}

And in your controller, you could write this:

public static void save(Course course){
    course.save();
    renderJSON(course);
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top