1. 程式人生 > >系統管理模塊_崗位管理_實現CRUD功能的具體步驟並設計Role實體

系統管理模塊_崗位管理_實現CRUD功能的具體步驟並設計Role實體

xtend delet 實現 result action == b- actions asto

系統管理模塊_崗位管理_實現CRUD功能的具體步驟並設計Role實體

1,設計實體/表

  設計實體 --> JavaBean --> hbm.xml --> 建表

設計Role實體

 1 public class Role {
 2     private Long id;
 3     private String name;
 4     private String description;
 5     public Long getId() {
 6         return id;
 7     }
 8     public void setId(Long id) {
9 this.id = id; 10 } 11 public String getName() { 12 return name; 13 } 14 public void setName(String name) { 15 this.name = name; 16 } 17 public String getDescription() { 18 return description; 19 } 20 public void setDescription(String description) {
21 this.description = description; 22 } 23 }

映射文件

<hibernate-mapping package="cn.itcast.oa.domain">
    <class name="Role" table="itcast_role">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="name"
></property> <property name="description"></property> </class> </hibernate-mapping>

加到hibernate.cfg.xml配置中,讓它知道有這個映射文件才能建表

<mapping resource="cn/itcast/oa/domain/Role.hbm.xml" />

運行測試類,創建SessionFactory時就會創建itcast_role表

    //測試SessionFactory
    @Test
    public void testSessionFactory() throws Exception {
        SessionFactory sessionFactory = (SessionFactory)ac.getBean("sessionFactory");
        System.out.println(sessionFactory);
    } 

2,分析有幾個功能,對應幾個請求。

技術分享

添加、修改、刪除成功後 要重定向到列表功能,這樣在刷新頁面時才不會出現“又做一次增、刪、改”的操作。

列表與刪除功能都是只有一個請求

添加與修改功能都是有兩個請求

增刪改查共4個功能,6個請求,需要在Action中有6個對應的處理方法。

作用

方法名

返回值

對應的JSP頁面

列表

list()

list

list.jsp

刪除

delete()

toList

添加頁面

addUI()

addUI

addUI.jsp

添加

add()

toList

修改頁面

editUI()

editUI

editUI.jsp

修改

edit()

toList

toList的配置為:type="redirectAction" actionName=“xxAction_list”

<result name="toList" type="redirectAction">role_list</result>

===================================================================

    請求數量  地址欄

轉發    1   不變在一個功能之間的來回跳轉

重定向   2   變化在多個功能之間的跳轉

role_* ---> {1}代表第一個方法

*號代表

role_list     list

role_addUI     addUI

role_delete    delete

3,實現功能:

1,寫Action類,寫Action中的方法,確定Service中的方法。

先完成列表和刪除功能

 1 @Controller
 2 @Scope("prototype")
 3 public class RoleAction extends ActionSupport{
 4     //在Action裏面要用到Service,用註解@Resource,另外在RoleServiceImpl類上要添加註解@Service
 5     @Resource
 6     private RoleService roleService;
 7     
 8     private Long id;
 9     /**
10      * 列表
11      */
12     public String list() {
13         List<Role> roleList = roleService.findAll();
14         ActionContext.getContext().put("roleList", roleList);//用ognl裏的#號來獲取map的東西
15         return "list";
16     }
17     /**
18      * 刪除
19      */
20     public String delete() {
21         roleService.delete(id);
22         return "toList";
23     }
24     /**
25      * 添加頁面
26      */
27     public String addUI() {
28         return "addUI";
29     }
30     /**
31      * 添加
32      */
33     public String add() {
34         return "toList";
35     }
36     /**
37      * 修改頁面
38      */
39     public String editUI() {
40         return "editUI";
41     }
42     /**
43      * 修改
44      */
45     public String edit() {
46         return "toList";
47     }
48     //--------------
49     public Long getId() {
50         return id;
51     }
52     public void setId(Long id) {
53         this.id = id;
54     }
55 }

struts.xml文件中配置

      <!-- 崗位管理 -->
        <action name="role_*" class="roleAction" method="{1}">
            <result name="list">/WEB-INF/jsp/roleAction/list.jsp</result>
            <result name="addUI">/WEB-INF/jsp/roleAction/addUI.jsp</result>
            <result name="editUI">/WEB-INF/jsp/roleAction/editUI.jsp</result>
            <result name="toList" type="redirectAction">role_list</result>
        </action>

2,寫Service方法,確定Dao中的方法。

先完成列表和刪除功能

RoleService.java

//接口中只有方法的聲明,沒有方法的實現
public interface RoleService {
    //查詢所有
    List<Role> findAll();
    //刪除
    void delete(Long id);
}

RoleServiceImpl.java

//在Action中要調用Service,要寫下面兩個註解
@Service
@Transactional    //業務層要管理實務,控制開關事務
public class RoleServiceImpl implements RoleService{
    //Service裏要調用Dao,得到它通過註入
    @Resource
    private RoleDao roleDao;

    public List<Role> findAll() {
        return roleDao.findAll();
    }
    public void delete(Long id) {
        roleDao.delete(id);
    }
}

3,寫Dao方法。

RoleDao.java

public interface RoleDao extends BaseDao<Role>{
}

列表與刪除等公共方法都在繼承的BaseDao裏有

RoleDaoImpl.java

//放到容器裏面,以供Service使用Dao的接口與實現類
@Repository
public class RoleDaoImpl extends BaseDaoImpl<Role> implements RoleDao{
}

4,寫JSP

技術分享

list.jsp

<%@ taglib prefix="s" uri="/struts-tags" %><!-- 引入struts標簽 -->
<body>
      <s:iterator value="#roleList"><!-- 得到裏面的集合 -->
          <s:property value="id"/>,
          <s:property value="name"/>,
          <s:property value="description"/>,
          <s:a action="role_delete?id=%{id}">刪除</s:a>
      </s:iterator>
  </body>

訪問:http://localhost:8080/ItcastOA/role_list.action即可看到列表

實現添加和修改功能

1,寫Action類,寫Action中的方法,確定Service中的方法。

RoleAction.java

 1 @Controller
 2 @Scope("prototype")
 3 public class RoleAction extends ActionSupport{
 4     //在Action裏面要用到Service,用註解@Resource,另外在RoleServiceImpl類上要添加註解@Service
 5     @Resource
 6     private RoleService roleService;
 7     
 8     private Long id;
 9     private String name;
10     private String description;
11     /**
12      * 列表
13      */
14     public String list() {
15         List<Role> roleList = roleService.findAll();
16         ActionContext.getContext().put("roleList", roleList);//用ognl裏的#號來獲取map的東西
17         return "list";
18     }
19     
20     /**
21      * 刪除
22      */
23     public String delete() {
24         roleService.delete(id);
25         return "toList";
26     }
27     /**
28      * 添加頁面
29      */
30     public String addUI() {
31         return "addUI";
32     }
33     /**
34      * 添加
35      */
36     public String add() {
37         //封裝到對象中
38         Role role = new Role();
39         role.setName(name);//名稱和說明怎麽得到,跟id一樣聲明字段,setget方法
40         role.setDescription(description);
41         
42         //保存到數據庫中
43         roleService.save(role);
44         return "toList";
45     }
46     /**
47      * 修改頁面
48      */
49     public String editUI() {
50         //準備回顯的數據
51         Role role =roleService.getById(id);
52         //ActionContext.getContext().getValueStack().push(role);//放到棧頂
53         this.name=role.getName();
54         this.description =role.getDescription();
55         return "editUI";
56     }
57     /**
58      * 修改
59      */
60     public String edit() {
61         //1.從數據庫中獲取原對象
62         Role role = roleService.getById(id);//role是根據id來的
63         
64         //2.設置要修改的屬性
65         role.setName(name);
66         role.setDescription(description);
67         //3.更新到數據庫
68         roleService.update(role);
69         
70         return "toList";
71     }
72     //--------------
73     public Long getId() {
74         return id;
75     }
76     public void setId(Long id) {
77         this.id = id;
78     }
79     public String getName() {
80         return name;
81     }
82     public void setName(String name) {
83         this.name = name;
84     }
85     public String getDescription() {
86         return description;
87     }
88     public void setDescription(String description) {
89         this.description = description;
90     }    
91 }

2,寫Service方法,確定Dao中的方法。

RoleService.java

//接口中只有方法的聲明,沒有方法的實現
public interface RoleService {
    //查詢所有
    List<Role> findAll();
    //刪除
    void delete(Long id);
    //保存
    void save(Role role);
    Role getById(Long id);
    //更新
    void update(Role role);
}

3,寫Dao方法。

RoleDao.java

public interface RoleDao extends BaseDao<Role>{
}

4,寫JSP

addUI.jsp

  <body>
      <s:form action="role_add"><!-- 提交的地址 -->
          <s:textfield name="name"></s:textfield>
        <s:textarea name="description"></s:textarea>
        <s:submit value="提交"></s:submit>
      </s:form>
  </body>

editUI.jsp

     <s:form action="role_edit"><!-- 提交的地址 -->
           <s:hidden name="id"></s:hidden><!-- 修改要給出隱藏的id -->
          <s:textfield name="name"></s:textfield>
        <s:textarea name="description"></s:textarea>
        <s:submit value="提交"></s:submit>
      </s:form>

訪問:http://localhost:8080/ItcastOA/role_list.action驗證即可

技術分享

技術分享

系統管理模塊_崗位管理_實現CRUD功能的具體步驟並設計Role實體