• 实战3--设计管理模块, 第三步, 实现具体功能


    3. 实现功能

        1. 写action, 写action中的方法, 确定service中的方法

        2. 写service, 确定Dao中的方法

        3. 写Dao方法

        4. 写jsp

    1. 完善action里的方法, 以确实service里需要写的方法, 因为action里要使用service, 所以先创建RoleService.java和RoleServiceImpl.java ,先不写方法, 通过action里调用方法的方式新建service里的方法

       1) action里创建roleService实例, 加@Resource, 别忘了在RoleServiceImpl上加上@Service和@Transactional

       2) action的方法里, 都通过service调用方法findAll(), delete(),save(),update(), getById()

       3) 使用ModelDriven, 

    package cn.itcast.oa.view.action;
    
    import java.util.List;
    
    import javax.annotation.Resource;
    
    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Controller;
    
    import cn.itcast.oa.domain.Role;
    import cn.itcast.oa.service.RoleService;
    
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;
    
    @Controller
    @Scope("prototype")
    public class RoleAction extends ActionSupport implements ModelDriven<Role>{
    	/*列表*/
    	@Resource
    	private RoleService roleService;
    	
    	private Role model = new Role();
    	public Role getModel() {
    		return model;
    	}
    
    	public RoleService getRoleService() {
    		return roleService;
    	}
    	public void setRoleService(RoleService roleService) {
    		this.roleService = roleService;
    	}
    	
    	public String list() throws Exception {
    		List<Role> roleList=roleService.findAll();
    		ActionContext.getContext().put("roleList", roleList);
    		return "list";
    	}
    	/*删除*/
    	public String delete() throws Exception {
    		roleService.delete(model.getId());
    		return "toList";
    	}
    	/*添加页面*/
    	public String addUI() throws Exception {		
    		return "saveUI";
    	}
    	
    	/*添加*/
    	public String add() throws Exception {
    		roleService.save(model);
    		return "toList";
    	}
    	/*修改页面*/
    	public String editUI() throws Exception {
    		Role role = roleService.getById(model.getId());
    		ActionContext.getContext().getValueStack().push(role);		
    		return "saveUI";
    	}
    	
    	/*修改*/
    	public String edit() throws Exception {
    		//1. 从数据库中获取原对象
    		Role role = roleService.getById(model.getId());
    		//2. 设置要修改的属性;
    		role.setName(model.getName());
    		role.setDescription(model.getDescription());
    		//3. 更新到数据库
    		roleService.update(role);
    		return "toList";
    	}	
    }
    

         

    2. 写service的实现类RoleServiceImpl, 调用roleDao的方法实现, 注意在roleDao前加@Resource

    package cn.itcast.oa.service.impl;
    
    import java.util.List;
    
    import javax.annotation.Resource;
    
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;
    
    import cn.itcast.oa.dao.RoleDao;
    import cn.itcast.oa.domain.Role;
    import cn.itcast.oa.service.RoleService;
    
    @Service
    @Transactional
    public class RoleServiceImpl implements RoleService{
    
    	@Resource
    	private RoleDao roleDao;
    	@Override
    	public List<Role> findAll() {
    		return roleDao.findAll();
    	}
    
    	public void delete(Long id) {
    		roleDao.delete(id);
    	}
    
    	public void save(Role role) {
    		roleDao.save(role);	
    	}
    
    	public Role getById(Long id) {
    		return roleDao.getById(id);
    	}
    
    	public void update(Role role) {
    		roleDao.update(role);
    	}
    
    }
    

    RoleService.java:

    package cn.itcast.oa.service;
    import java.util.List;
    import cn.itcast.oa.domain.Role;
    public interface RoleService {
    	//查询所有
    	List<Role> findAll();
    	void delete(Long id);
    	void save(Role role);
    	Role getById(Long id);
    	void update(Role role);
    }
    

    3. DAO功能都已实现完成

    4. 写jsp文件, list.jsp, saveUI.jsp

    list.jsp:

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
         <title>My JSP 'list.jsp' starting page</title>
      </head>
      
      <body>   	
       		<s:iterator value="#roleList">
       		${id},
       		${name}
       		${description}   		
       		<s:a action="role_delete?id=%{id}" onclick="return confirm('确定要删除吗?')">删除</s:a>
       		<s:a action="role_editUI?id=%{id}">修改</s:a>
       		<br/>
       	</s:iterator>
       	<br/>
       	<s:a action="role_addUI">添加</s:a>
      </body>
    </html>
    

     addUI.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
         <title>My JSP 'addUI.jsp' starting page</title>
      </head>
      
      <body>
       	<s:form action="role_add">   	
       		<s:textfield name="name"></s:textfield><br/>
       		<s:textarea name="description"></s:textarea><br/>
       		<s:submit value="提交"></s:submit>
       	</s:form>
       
      </body>
    </html>
    

    editUI.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
         <title>My JSP 'editUI.jsp' starting page</title>
      </head>
      
      <body>
       	<s:form action="role_edit">  
       		<s:hidden name="id"></s:hidden> 	
       		<s:textfield name="name"></s:textfield><br/>
       		<s:textarea name="description"></s:textarea><br/>
       		<s:submit value="提交"></s:submit>
       	</s:form>
    	
       	<s:debug></s:debug>
       
      </body>
    </html>
    

      

    整合成saveUI.jsp 

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <%String path = request.getContextPath();%>
    <html>
    <head>
    <title>岗位设置</title>
        <script language="javascript" type="text/javascript" src=<%=path%>/script/jquery.js"></script>
        <script language="javascript" type="text/javascript" src=<%=path%>/script/pageCommon.js"></script>
        <script language="javascript" type="text/javascript" src=<%=path%>/script/PageUtils.js"></script>
        <link type="text/css" rel="stylesheet" href="<%=path%>/style/blue/pageCommon.css"/>
        <script type="text/javascript"> 
        </script>
    </head>
    <body> 
    
    <!-- 标题显示 -->
    <div id="Title_bar">
        <div id="Title_bar_Head">
            <div id="Title_Head"></div>
            <div id="Title"><!--页面标题-->
                <img border="0" width="13" height="13" src="<%=path%>/style/images/title_arrow.gif"/> 岗位设置
            </div>
            <div id="Title_End"></div>
        </div>
    </div>
    
    <!--显示表单内容-->
    <div id="MainArea">
    
        <s:form action="role_%{ id == null ? 'add' : 'edit' }">
        	<s:hidden name="id"></s:hidden>
        
            <div class="ItemBlock_Title1"><!-- 信息说明<DIV CLASS="ItemBlock_Title1">
            	<IMG BORDER="0" WIDTH="4" HEIGHT="7" SRC="${pageContext.request.contextPath}/style/blue/images/item_point.gif" /> 岗位信息 </DIV>  -->
            </div>
            
            <!-- 表单内容显示 -->
            <div class="ItemBlockBorder">
                <div class="ItemBlock">
                    <table cellpadding="0" cellspacing="0" class="mainForm">
                        <tr>
                            <td width="100">岗位名称</td>
                            <td><s:textfield name="name" cssClass="InputStyle" /> *</td>
                        </tr>
                        <tr>
                            <td>岗位说明</td>
                            <td><s:textarea name="description" cssClass="TextareaStyle"></s:textarea></td>
                        </tr>
                    </table>
                </div>
            </div>
            
            <!-- 表单操作 -->
            <div id="InputDetailBar">
                <input type="image" src="<%=path%>/style/images/save.png"/>
                <a href="javascript:history.go(-1);"><img src="<%=path%>/style/images/goBack.png"/></a>
            </div>
        </s:form>
    </div>
    
    </body>
    </html>
    

    list.jsp也做的漂亮点:

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <%String path = request.getContextPath();%>
    <html>
    <head>
        <title>岗位列表</title>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
        <script language="javascript" type="text/javascript" src=<%=path%>/script/jquery.js"></script>
        <script language="javascript" type="text/javascript" src=<%=path%>/script/pageCommon.js"></script>
        <script language="javascript" type="text/javascript" src=<%=path%>/script/PageUtils.js"></script>
       
        <link type="text/css" rel="stylesheet" href="<%=path%>/style/blue/pageCommon.css"/>
        <script type="text/javascript"></script>
         
    </head>
    <body>
     
    <div id="Title_bar">
        <div id="Title_bar_Head">
            <div id="Title_Head"></div>
            <div id="Title"><!--页面标题-->
                <img border="0" width="13" height="13" src="<%=path%>/style/images/title_arrow.gif"/> 岗位管理
            </div>
            <div id="Title_End"></div>
        </div>
    </div>
    
    <div id="MainArea">
        <table cellspacing="0" cellpadding="0" class="TableStyle">
           
            <!-- 表头-->
            <thead>
                <tr align="CENTER" valign="MIDDLE" id="TableTitle">
                	<td width="200px">岗位名称</td>
                    <td width="300px">岗位说明</td>
                    <td>相关操作</td>
                </tr>
            </thead>
    
    		<!--显示数据列表-->
            <tbody id="TableData" class="dataContainer" datakey="roleList">
            
            <s:iterator value="#roleList">
    			<tr class="TableDetail1 template">
    				<td>${name} </td>
    				<td>${description} </td>
    				<td>
    					<s:a action="role_delete?id=%{id}" onclick="return confirm('确定要删除吗?')">删除</s:a>
    					<s:a action="role_editUI?id=%{id}">修改</s:a>
    					<s:a action="role_setPrivilegeUI?id=%{id}">设置权限</s:a>
    				</td>
    			</tr>  
            </s:iterator>
    
            </tbody>
        </table>
        
        <!-- 其他功能超链接 -->
        <div id="TableTail">
    		<div id="TableTail_inside">
    			<s:a action="role_addUI"><img src="<%=path%>/style/images/createNew.png" /></s:a>
            </div>
        </div>
    </div>
    </body>
    </html>
    

      

      

     

  • 相关阅读:
    HTTP 与 HTTPS 的区别
    cookie 和session 的区别详解
    IntelliJ远程调试教程
    selenium 自动化测试面试题及答案
    性能测试总结(一)---基础理论篇(转载)
    性能测试总结(二)---测试流程篇(转载)
    性能测试总结(三)--工具选型篇
    eclipse调试的基本意义
    控制反转(IOC)和依赖注入(DI)
    前端框架layui
  • 原文地址:https://www.cnblogs.com/wujixing/p/5498948.html
Copyright © 2020-2023  润新知