SSH项目的菜单问题及解决方法

来源:互联网 发布:淘宝怎么开好店 编辑:程序博客网 时间:2024/04/28 15:45

纠结了许久,终于解决了。

Menu.java

public class Menu implements java.io.Serializable {


// Fields
private Integer id;
private String name;
private Integer parentid;
private String checkCode;
private List<Menu> menus;

// Constructors

/** default constructor */
public Menu() {
}

/** full constructor */
public Menu(String name, Integer parentid, String checkCode) {
this.name = name;
this.parentid = parentid;
this.checkCode = checkCode;
}
// Property accessors


public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public Integer getParentid() {
return this.parentid;
}
public void setParentid(Integer parentid) {
this.parentid = parentid;
}
public String getCheckCode() {
return this.checkCode;
}
public void setCheckCode(String checkCode) {
this.checkCode = checkCode;
}
public List<Menu> getMenus() {
return menus;
}
public void setMenus(List<Menu> menus) {
this.menus = menus;
}

}

Menu.hbm.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.ticket.entity.Menu" table="MENU" schema="TICKET">
        <id name="id" type="java.lang.Integer">
            <column name="ID" precision="10" scale="0" />
            <generator class="sequence">
            <param name="sequence">TICKET</param>
            </generator>
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
        <property name="parentid" type="java.lang.Integer">
            <column name="PARENTID" precision="10" scale="0" />
        </property>
        <property name="checkCode" type="java.lang.String">
            <column name="CHECK_CODE" />
        </property>
    </class>
</hibernate-mapping>


MenuServiceImpl 业务层


package com.ticket.servcie.impl;


import java.util.List;


import com.ticket.dao.MenuDao;
import com.ticket.entity.Menu;
import com.ticket.servcie.MenuService;


public class MenuServiceImpl implements MenuService {


private MenuDao menuDao;
public void setMenuDao(MenuDao menuDao) {
this.menuDao = menuDao;
}


public List<Menu> findAllParentId(Integer parentid) {
String hql;
if(parentid==null){
hql = "from Menu where (parentid is null or parentid='')";
}else{
hql = "from Menu where parentid ="+parentid;
}
return menuDao.getByParentId(hql);
}


public List<Menu> findAllMenu() {
List<Menu> menus = findAllParentId(null);//根据父为空
for (Menu m : menus) {
List<Menu> ms= findAllParentId(m.getId());//根据父id查所属
m.setMenus(ms);
}
return menus;
}


}

MenuAction 层

package com.ticket.action;


import java.util.List;


import com.opensymphony.xwork2.ActionSupport;
import com.ticket.entity.Menu;
import com.ticket.servcie.MenuService;


public class MenuAction extends ActionSupport {


//依赖业务层
private MenuService menuService;
public void setMenuService(MenuService menuService) {
this.menuService = menuService;
}

private List<Menu> listMenus;
public List<Menu> getListMenus() {
return listMenus;
}


public void setListMenus(List<Menu> listMenus) {
this.listMenus = listMenus;
}


/**
* 查询菜单
* @return
*/
public String selectMenu(){
listMenus = menuService.findAllMenu();
return SUCCESS;
}
}


希望能够帮助大家。


0 0
原创粉丝点击