假设我有一堂课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
。通过这种形式,您可以执行以下操作:
<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上,您可以将数据获取为
String[] books = request.getParameterValues("bookstudent2");
通过执行操作,command object
您只能将其显示在UI上(通过使用正确的路径在命令对象中的Student或Books中进行迭代)。但是,您无法以其他方式做到这一点,这意味着您无法在UI上操作数据,也无法通过命令Object发送数据。
不使用JavaScript怎么办?提交表单时如何将子对象的数据与父对象绑定?
如果您有固定数量的学生和固定数量的书,那么您可以做自己想做的事情。看一下这个链接。但是,如果您想尽我所能动态地添加“学生”和“书本”,则必须使用上述方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句