给个例子,这里有个一对多,一个用户可任多个角色.在加载数据的servlet中,把要修改的数据塞进request对象:
request.setAttribute("user",user);// 一个user
request.setAttribute("roles",roles);// 多个role,roles是个List
转发到编辑页面//////////////////////////////编辑页面的表单(多个role用复选框组件):
<form action="userRoleUpdateAct.do" method="POST" >
<%
for(Role role:roles){ //把传过来的多个role展开来,放进复选框 out.print("<input type='checkbox' name='roleIds' value='");
out.print(role.getRoleId());
out.print("' ");
for(Role role2:sub_roles){
if(role2.getRoleId().equals(role.getRoleId())){
out.print("checked");
}
}
out.print(">"); out.print(role.getRoleName()+" ");
out.println(role.getNotes());
out.print("<br>");
}
%>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
<input type="button" value="取消" onClick="window.history.back();"/>
<input type="hidden" name="userId" value="<%=user.getUserId()%>">
</form>供参考.
request.setAttribute("user",user);// 一个user
request.setAttribute("roles",roles);// 多个role,roles是个List
转发到编辑页面//////////////////////////////编辑页面的表单(多个role用复选框组件):
<form action="userRoleUpdateAct.do" method="POST" >
<%
for(Role role:roles){ //把传过来的多个role展开来,放进复选框 out.print("<input type='checkbox' name='roleIds' value='");
out.print(role.getRoleId());
out.print("' ");
for(Role role2:sub_roles){
if(role2.getRoleId().equals(role.getRoleId())){
out.print("checked");
}
}
out.print(">"); out.print(role.getRoleName()+" ");
out.println(role.getNotes());
out.print("<br>");
}
%>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
<input type="button" value="取消" onClick="window.history.back();"/>
<input type="hidden" name="userId" value="<%=user.getUserId()%>">
</form>供参考.
如果每一个联系人都只能有一个单位,(与一个单位有多个联系人不矛盾),那么应该在联系人的实体类中加外键与单位关联.
首次录入数据时,先批量录入单位数据,然后再批量录入联系人数据,
在录入联系人数据的时候,把单位数据的ID做成集合并用下拉单选框组件装进去,供联系人的外键选取.
以后单位的联系人如有增加,也用录入联系人的办法进行添加,删除,就直接删除好了.
但是单位数据的删除,要同时删除相关联的所有业务联系人.