假设我有一堂课Student,另一堂课是Books。与… Student有一对多关系的班级Books。
Student
Books
现在,我想从用户名(如学生姓名,城市等)中获取Books数据,并在同一页面上添加详细信息(如书名,作者,价格等)。用户可以添加多个Books详细信息(显然)。然后,我想提交包含所有嵌套对象(书)数据和父项的页面。我怎样才能做到这一点?
只要满足要求,您可以采用任何其他示例代替学生和书籍。
这是我的JSP文件:
// here student is a parent object and book is a child object having name,author etc details. <body> ${company} form <form:form commandName="student" action="../homeController/getDetails" id="studentForm"> Name: <form:input path="name" id="name" /> City: <form:input path="city" id="city" /> <form:input path="books.bookName" id="bookname"/> <form:input path="books.bookAuthor" id="bookauthor"/> <button type="submit" name="submit" style="width: 50px; height: 20px;" value="Submit">Submit</button> </form:form> </body>
如果您可以为我提供良好的链接,那也将是很大的帮助。
您必须为此编写JavaScript,但我会给您一个想法。
在您的JSP中有一个表格可以说name=StudentDataForm。通过这种形式,您可以执行以下操作:
name=StudentDataForm
<form name="StudentDataForm" action="/submitStudentData.htm" method="post"> <div id="student1"> Name : <input type="text" id="studentname1" name="studentname" > City : <input type="text" id="studentcity1" name="city" > <div id="books> Books : <input type="text" id="student1book1" name="bookstudent1" > Books : <input type="text" id="student1book2" name="bookstudent1" > </div> </div> <div id="student2"> Name : <input type="text" id="studentname2" name="studentname" > City : <input type="text" id="studentcity2" name="city" > <div id="books> Books : <input type="text" id="student2book1" name="bookstudent2" > Books : <input type="text" id="student2book2" name="bookstudent2" > Books : <input type="text" id="student2book3" name="bookstudent2" > Books : <input type="text" id="student2book4" name="bookstudent2" > </div> </div> </> </form>
name相同的实体的概念是相同的,就像学生的所有书籍一样name = bookstudent2。然后在您的控制器或servlet上,您可以将数据获取为
name
name = bookstudent2
String[] books = request.getParameterValues("bookstudent2");
通过执行操作,command object您只能将其显示在UI上(通过使用正确的路径在命令对象中的Student或Books中进行迭代)。但是,您无法以其他方式做到这一点,这意味着您无法在UI上操作数据并无法通过命令Object发送数据。
command object
不使用JavaScript怎么办?提交表单时如何将子对象的数据与父对象绑定?
如果您有固定数量的学生和固定数量的书,则可以做您想要的。看一下这个链接。但是,如果您想根据我的理解动态地添加“学生”和“书本”,则必须使用上述方法。