struts代码
package com.haolong.invoicing.struts;import java.util.Iterator;
import java.util.Set;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.MappingDispatchAction;import com.haolong.invoicing.biz.AdminBiz;
import com.haolong.invoicing.biz.AdminBizImpl;
import com.haolong.invoicing.model.Admin;
import com.haolong.invoicing.model.AdminRoles;public class AdminAction extends MappingDispatchAction {
private AdminBiz biz;
public ActionForward login(
ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
String username=request.getParameter("loginname");
String password=request.getParameter("password");
Admin admin=biz.findAdmin(username, password);
if(admin==null){
System.out.print(biz);
return mapping.findForward("fail");
}else{
request.getSession().setAttribute("admin",admin);
Set set=admin.getAdminRoles();
System.out.println(set.size());
Iterator<AdminRoles> it=set.iterator();
while(it.hasNext()){
System.out.println(it.next().getRole()); //出现异常 }
System.out.print(admin.getNames());
return mapping.findForward("success");
}
}
public ActionForward logout(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
request.getSession().removeAttribute("admin");
return mapping.findForward("success");
}
public AdminBiz getBiz() {
return biz;
}
public void setBiz(AdminBiz biz) {
this.biz = biz;
}}model代码
Admin.java-----------------------------------------------------------------------------package com.haolong.invoicing.model;import java.io.Serializable;
import java.sql.Date;
import java.util.HashSet;
import java.util.Set;
public class Admin implements Serializable {
private Integer id;
private String names;
private String loginName;
private String loginPassword;
private String phone;
private String email;
private Date enrollDate;
private Set<AdminRoles> adminRoles = new HashSet<AdminRoles>();
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getLoginPassword() {
return loginPassword;
}
public void setLoginPassword(String loginPassword) {
this.loginPassword = loginPassword;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getEnrollDate() {
return enrollDate;
}
public void setEnrollDate(Date enrollDate) {
this.enrollDate = enrollDate;
}
public Set<AdminRoles> getAdminRoles() {
return adminRoles;
}
public void setAdminRoles(Set<AdminRoles> adminRoles) {
this.adminRoles = adminRoles;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.haolong.invoicing.model">
<class name="Admin" table="admins">
<id name="id">
<generator class="increment"></generator>
</id>
<property name="names" />
<property name="loginName" column="loginname"/>
<property name="loginPassword" column="loginpassword"/>
<property name="phone" />
<property name="email"/>
<property name="enrollDate" column="enrolldate"/>
<set name="adminRoles" table="adminroles" lazy="false" inverse="true" cascade="save-update"><!-- 映射集合元素 -->
<key column="adminid"/><!-- 指定关联的外键 -->
<one-to-many class="AdminRoles" /><!-- 用以映射到关联类 -->
</set>
</class>
</hibernate-mapping>AdminRoles.java--------------------------------------------------------------------------
package com.haolong.invoicing.model;import java.io.Serializable;public class AdminRoles implements Serializable {
private Integer id;
private Admin admin;
private Role role;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Admin getAdmin() {
return admin;
}
public void setAdmin(Admin admin) {
this.admin = admin;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
}<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.haolong.invoicing.model">
<class name="AdminRoles" table="adminroles" >
<id name="id">
<generator class="increment" />
</id>
<many-to-one class="Admin" column="adminid" name="admin"/>
<many-to-one class="Role" column="roleid" name="role"/>
</class>
</hibernate-mapping>
Role.java---------------------------------------------------------------------------------
package com.haolong.invoicing.model;import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
public class Role implements Serializable {
private Integer id;
private String names;
private Set<AdminRoles> adminRoles=new HashSet<AdminRoles>();
private Set<RoleRights> roleRights=new HashSet<RoleRights>();
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
public Set<AdminRoles> getAdminRoles() {
return adminRoles;
}
public void setAdminRoles(Set<AdminRoles> adminRoles) {
this.adminRoles = adminRoles;
}
public Set<RoleRights> getRoleRights() {
return roleRights;
}
public void setRoleRights(Set<RoleRights> roleRights) {
this.roleRights = roleRights;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.haolong.invoicing.model">
<class name="Role" table="roles">
<id name="id">
<generator class="increment"></generator>
</id> <property name="names" />
<set name="adminRoles" table="adminroles" lazy="false"
cascade="all" inverse="true">
<key column="roleid" />
<one-to-many class="Admin" />
</set>
<!--
<set name="rights" table="rolerights" lazy="false" cascade="save-update"
>
<key column="roleid" />
<many-to-many class="Right" column="rightid" />
</set>
-->
</class>
</hibernate-mapping>我想获得Admin后直接获取AdminRole 再获取Role ?
package com.haolong.invoicing.struts;import java.util.Iterator;
import java.util.Set;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.MappingDispatchAction;import com.haolong.invoicing.biz.AdminBiz;
import com.haolong.invoicing.biz.AdminBizImpl;
import com.haolong.invoicing.model.Admin;
import com.haolong.invoicing.model.AdminRoles;public class AdminAction extends MappingDispatchAction {
private AdminBiz biz;
public ActionForward login(
ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
String username=request.getParameter("loginname");
String password=request.getParameter("password");
Admin admin=biz.findAdmin(username, password);
if(admin==null){
System.out.print(biz);
return mapping.findForward("fail");
}else{
request.getSession().setAttribute("admin",admin);
Set set=admin.getAdminRoles();
System.out.println(set.size());
Iterator<AdminRoles> it=set.iterator();
while(it.hasNext()){
System.out.println(it.next().getRole()); //出现异常 }
System.out.print(admin.getNames());
return mapping.findForward("success");
}
}
public ActionForward logout(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
request.getSession().removeAttribute("admin");
return mapping.findForward("success");
}
public AdminBiz getBiz() {
return biz;
}
public void setBiz(AdminBiz biz) {
this.biz = biz;
}}model代码
Admin.java-----------------------------------------------------------------------------package com.haolong.invoicing.model;import java.io.Serializable;
import java.sql.Date;
import java.util.HashSet;
import java.util.Set;
public class Admin implements Serializable {
private Integer id;
private String names;
private String loginName;
private String loginPassword;
private String phone;
private String email;
private Date enrollDate;
private Set<AdminRoles> adminRoles = new HashSet<AdminRoles>();
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getLoginPassword() {
return loginPassword;
}
public void setLoginPassword(String loginPassword) {
this.loginPassword = loginPassword;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getEnrollDate() {
return enrollDate;
}
public void setEnrollDate(Date enrollDate) {
this.enrollDate = enrollDate;
}
public Set<AdminRoles> getAdminRoles() {
return adminRoles;
}
public void setAdminRoles(Set<AdminRoles> adminRoles) {
this.adminRoles = adminRoles;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.haolong.invoicing.model">
<class name="Admin" table="admins">
<id name="id">
<generator class="increment"></generator>
</id>
<property name="names" />
<property name="loginName" column="loginname"/>
<property name="loginPassword" column="loginpassword"/>
<property name="phone" />
<property name="email"/>
<property name="enrollDate" column="enrolldate"/>
<set name="adminRoles" table="adminroles" lazy="false" inverse="true" cascade="save-update"><!-- 映射集合元素 -->
<key column="adminid"/><!-- 指定关联的外键 -->
<one-to-many class="AdminRoles" /><!-- 用以映射到关联类 -->
</set>
</class>
</hibernate-mapping>AdminRoles.java--------------------------------------------------------------------------
package com.haolong.invoicing.model;import java.io.Serializable;public class AdminRoles implements Serializable {
private Integer id;
private Admin admin;
private Role role;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Admin getAdmin() {
return admin;
}
public void setAdmin(Admin admin) {
this.admin = admin;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
}<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.haolong.invoicing.model">
<class name="AdminRoles" table="adminroles" >
<id name="id">
<generator class="increment" />
</id>
<many-to-one class="Admin" column="adminid" name="admin"/>
<many-to-one class="Role" column="roleid" name="role"/>
</class>
</hibernate-mapping>
Role.java---------------------------------------------------------------------------------
package com.haolong.invoicing.model;import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
public class Role implements Serializable {
private Integer id;
private String names;
private Set<AdminRoles> adminRoles=new HashSet<AdminRoles>();
private Set<RoleRights> roleRights=new HashSet<RoleRights>();
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
public Set<AdminRoles> getAdminRoles() {
return adminRoles;
}
public void setAdminRoles(Set<AdminRoles> adminRoles) {
this.adminRoles = adminRoles;
}
public Set<RoleRights> getRoleRights() {
return roleRights;
}
public void setRoleRights(Set<RoleRights> roleRights) {
this.roleRights = roleRights;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.haolong.invoicing.model">
<class name="Role" table="roles">
<id name="id">
<generator class="increment"></generator>
</id> <property name="names" />
<set name="adminRoles" table="adminroles" lazy="false"
cascade="all" inverse="true">
<key column="roleid" />
<one-to-many class="Admin" />
</set>
<!--
<set name="rights" table="rolerights" lazy="false" cascade="save-update"
>
<key column="roleid" />
<many-to-many class="Right" column="rightid" />
</set>
-->
</class>
</hibernate-mapping>我想获得Admin后直接获取AdminRole 再获取Role ?
解决方案 »
- http://ip.wen.la/ip.jsp?q=220.181.6.19&x=45&y=16截取其中的域名和网站名称
- hibernate+struct 问题
- spring mvc一个小例子,验证跳转后的错误!
- 关于Spring中数据库连接
- 急救:程序在resin中运行正常,而转到Tomcat后页面基本都看不到
- 如何获得程序的进程id
- linux下安装j2sdk的问题
- java 直接调用c++的exe文件和方法
- EJBean、bean、component???
- 给多少是多呢?(关于JAXP的访问XML节点的初级问题)
- 求问:java类似swing的一个开发框架,是桌面程序
- 谁能详细说下集中编码方式的区别?
cascade="all" inverse="true">
<key column="roleid" />
<one-to-many class="Admin" />
</set>应改成:<set name="adminRoles" table="adminroles" lazy="false"
cascade="all" inverse="true">
<key column="roleid" />
<one-to-many class="AdminRoles" />
</set>
用MyEclipse自动生成配置配置文件吧
配置文件不太熟的话 手写容易出错<set name="adminRoles" table="adminroles" lazy="false"
cascade="all" inverse="true">
<key column="roleid" />
<one-to-many class="AdminRoles" />
</set>
<one-to-many class="AdminRoles" />class里面应该和name是一致的 LZ的明显是不同的