如何在JSP页面上映射一对多关系并在提交页面时存储它们?
假设我有一堂课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怎么办?提交表单时如何将子对象的数据与父对象绑定?
如果您有固定数量的学生和固定数量的书,则可以做您想要的。看一下这个链接。但是,如果您想根据我的理解动态地添加“学生”和“书本”,则必须使用上述方法。
以上是 如何在JSP页面上映射一对多关系并在提交页面时存储它们? 的全部内容, 来源链接: utcz.com/qa/408729.html