一。#目前遇到的难题是在ec table获取不到老师的集合,以及映射关系的时候遍历了俩次小张我要得到的页面结果是
学生名字 所有老师的名字
小张 [张老师,李老师]但是目前根据我这个jsp页面设计在ec表格里面只能获取到所有的学生,而得不到学生关联到的老师
目前页面输出的效果:
小张 iterator: 张老师 张老师
小张 iterator: 张老师 张老师 index.jsp
<%--这里能正常获取到学生关联到老师的信息 --%><%--遍历所有的学生 --%>
<s:iterator value="#request.student" id="student">
<%--获取学生名字 --%>
<s:property value="#student.name"/>
<%--根据学生获取所有的老师list对象遍历 --%>
iterator:
<s:iterator value="#student.teachers" id="teacher">
<%--获取老实名字--%>
<s:property value="#teacher.name"/>
</s:iterator>
<br/></s:iterator><%--这里能正常获取到学生关联到老师的信息 --%>
<%--这里获取不到学生关联到老师的信息 --%> <ec:table action="as!getAllStudent.ec" items="Student" var="stu" retrieveRowsCallback="limit" >
<ec:exportXls fileName="Student.xls" tooltip="export Excel" />
<ec:row >
</s:iterator>
<ec:column property="id" title="extremecomponent.selectall" sortable="false" width="10%" viewsAllowed="html">
<input type="checkbox" name="objectid" value="${stu.id}" onclick="checkobjectid()" />
</ec:column>
<ec:column property="id" title="extremecomponent.stu.id" sortable="false" width="10%" viewsAllowed="html"></ec:column>
<ec:column property="name" title="extremecomponent.stu.name" ></ec:column>
<%--根据stu获取所有的老师list对象遍历,目前放到ec这里无法获取老师的名字,现在遇到的困难就在这里,只要可以我这里有一个页面列表字段,展示所有的老师名称[张老师-李老师]--%>
<s:iterator value="#student.teachers" id="teacher">
ec: iterator <s:property value="#teacher.name"/><br/>
</ec:row>
</ec:table>
<%--这里获取不到学生关联到老师的信息 --%>
二 目前我的java类简单介绍一下,是多对多的关系,使用的是annotations注释
public class Student{
pirvate int student_id
private String name;
private Set<Teacher> teachers = new HashSet<Teacher>(); @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER)
@JoinTable(name = "student_teacher", joinColumns = { @JoinColumn(name = "student_id") }, inverseJoinColumns = { @JoinColumn(name = "teacherid") })
public Set<Teacher> getTeachers() {
return teachers;
} public void setTeachers(Set<Teacher> teachers) {
this.teachers = teachers;
}}publuc class Teacher{
pirvate int teacherid
private String name;
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = "teachers")
private Set<Student> students = new HashSet<Student>();
public Set<Student> getStudents() {
return students;
} public void setTeachers(Set<Student> students) {
this.students = students;
}}三 表关系
学生表 student
id name
1 小张老师表 teacher
1 张老师
2 李老师学生-老师中间表 student_teacher
id student_id teacherid
1 1 1
1 1 2
学生名字 所有老师的名字
小张 [张老师,李老师]但是目前根据我这个jsp页面设计在ec表格里面只能获取到所有的学生,而得不到学生关联到的老师
目前页面输出的效果:
小张 iterator: 张老师 张老师
小张 iterator: 张老师 张老师 index.jsp
<%--这里能正常获取到学生关联到老师的信息 --%><%--遍历所有的学生 --%>
<s:iterator value="#request.student" id="student">
<%--获取学生名字 --%>
<s:property value="#student.name"/>
<%--根据学生获取所有的老师list对象遍历 --%>
iterator:
<s:iterator value="#student.teachers" id="teacher">
<%--获取老实名字--%>
<s:property value="#teacher.name"/>
</s:iterator>
<br/></s:iterator><%--这里能正常获取到学生关联到老师的信息 --%>
<%--这里获取不到学生关联到老师的信息 --%> <ec:table action="as!getAllStudent.ec" items="Student" var="stu" retrieveRowsCallback="limit" >
<ec:exportXls fileName="Student.xls" tooltip="export Excel" />
<ec:row >
</s:iterator>
<ec:column property="id" title="extremecomponent.selectall" sortable="false" width="10%" viewsAllowed="html">
<input type="checkbox" name="objectid" value="${stu.id}" onclick="checkobjectid()" />
</ec:column>
<ec:column property="id" title="extremecomponent.stu.id" sortable="false" width="10%" viewsAllowed="html"></ec:column>
<ec:column property="name" title="extremecomponent.stu.name" ></ec:column>
<%--根据stu获取所有的老师list对象遍历,目前放到ec这里无法获取老师的名字,现在遇到的困难就在这里,只要可以我这里有一个页面列表字段,展示所有的老师名称[张老师-李老师]--%>
<s:iterator value="#student.teachers" id="teacher">
ec: iterator <s:property value="#teacher.name"/><br/>
</ec:row>
</ec:table>
<%--这里获取不到学生关联到老师的信息 --%>
二 目前我的java类简单介绍一下,是多对多的关系,使用的是annotations注释
public class Student{
pirvate int student_id
private String name;
private Set<Teacher> teachers = new HashSet<Teacher>(); @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER)
@JoinTable(name = "student_teacher", joinColumns = { @JoinColumn(name = "student_id") }, inverseJoinColumns = { @JoinColumn(name = "teacherid") })
public Set<Teacher> getTeachers() {
return teachers;
} public void setTeachers(Set<Teacher> teachers) {
this.teachers = teachers;
}}publuc class Teacher{
pirvate int teacherid
private String name;
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = "teachers")
private Set<Student> students = new HashSet<Student>();
public Set<Student> getStudents() {
return students;
} public void setTeachers(Set<Student> students) {
this.students = students;
}}三 表关系
学生表 student
id name
1 小张老师表 teacher
1 张老师
2 李老师学生-老师中间表 student_teacher
id student_id teacherid
1 1 1
1 1 2
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货