接上一篇
http://blog.csdn.net/acmman/article/details/49512903
然后是action层:
action层写完之后,写我们的配置文件:
role-spring.xml:
role-struts.xml:
然后准备前端的jsp页面:
列表页面:
listUI.jsp:
添加界面
addUI.action:
编辑页面:
editUI.jsp
下面我们来测试,首先访问列表界面http://localhost/HpuTax/tax/role_listUI.action:
可以看到是空的,我们还没有添加数据,我们点击新增
添加管理员角色和棋权限,然后点击保存:
回到列表看到数据添加成功,
然后点击编辑
将权限更改
发现更改成功!
同样点击删除删除成功,这里不再演示。
然后是action层:
package cn.edu.hpu.tax.role.action;
import java.util.HashSet;
import java.util.List;
import javax.annotation.Resource;
import cn.edu.hpu.tax.core.action.BaseAction;
import cn.edu.hpu.tax.core.content.Constant;
import cn.edu.hpu.tax.role.entity.Role;
import cn.edu.hpu.tax.role.entity.RolePrivilege;
import cn.edu.hpu.tax.role.entity.RolePrivilegeId;
import cn.edu.hpu.tax.role.service.RoleService;
import com.opensymphony.xwork2.ActionContext;
public class RoleAction extends BaseAction{
@Resource
private RoleService roleService;
private List<Role> roleList;
private Role role;
private String[] privilegeIds;
//列表页面
public String listUI() throws Exception{
try {
//加载权限集合
ActionContext.getContext().getContextMap().put("privilegeMap", Constant.PRIVILEGE_MAP);
roleList=roleService.findObjects();
} catch (Exception e) {
throw new Exception(e.getMessage());
}
return "listUI";
}
//跳转到新增页面
public String addUI(){
//加载权限集合
ActionContext.getContext().getContextMap().put("privilegeMap", Constant.PRIVILEGE_MAP);
return "addUI";
}
//保存新增
public String add(){
if(role!=null ){
//处理权限保存
if(privilegeIds!=null){
HashSet<RolePrivilege> set=new HashSet<RolePrivilege>();
for (int i = 0; i < privilegeIds.length; i++) {
set.add(new RolePrivilege(new RolePrivilegeId(role,privilegeIds[i])));
}
role.setRolePrivileges(set);
}
roleService.save(role);
}
return "list";
}
//跳转到编辑界面
public String editUI(){
//加载权限集合
ActionContext.getContext().getContextMap().put("privilegeMap", Constant.PRIVILEGE_MAP);
if(role!=null && role.getRoleId()!=null){
role=roleService.findObjectById(role.getRoleId());
//处理权限回显
if(role.getRolePrivileges()!=null){
privilegeIds=new String[role.getRolePrivileges().size()];
int i=0;
for(RolePrivilege r:role.getRolePrivileges()){
privilegeIds[i++]=r.getId().getCode();
}
}
}
return "editUI";
}
//保存编辑
public String edit(){
//处理权限保存
if(privilegeIds!=null){
HashSet<RolePrivilege> set=new HashSet<RolePrivilege>();
for (int i = 0; i < privilegeIds.length; i++) {
set.add(new RolePrivilege(new RolePrivilegeId(role,privilegeIds[i])));
}
role.setRolePrivileges(set);
}
roleService.update(role);
return "list";
}
//删除
public String delete(){
if(role!=null && role.getRoleId()!=null){
roleService.delete(role.getRoleId());
}
return "list";
}
//批量删除
public String deleteSelected(){
if(selectedRow!=null){
for(String id:selectedRow){
roleService.delete(id);
}
}
return "list";
}
public List<Role> getRoleList() {
return roleList;
}
public void setRoleList(List<Role> roleList) {
this.roleList = roleList;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
public String[] getPrivilegeIds() {
return privilegeIds;
}
public void setPrivilegeIds(String[] privilegeIds) {
this.privilegeIds = privilegeIds;
}
}
action层写完之后,写我们的配置文件:
role-spring.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- 继承了注入sessionFactory的抽象类,不用反复出入sessionFactory -->
<bean id="roleDao" class="cn.edu.hpu.tax.role.dao.impl.RoleDaoImpl" parent="xDao"></bean>
<!-- 扫描Service -->
<context:component-scan base-package="cn.edu.hpu.tax.role.service.impl"></context:component-scan>
</beans>
role-struts.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="role-action" namespace="/tax" extends="base-default">
<action name="role_*" class="cn.edu.hpu.tax.role.action.RoleAction" method="{1}">
<result name="{1}">/WEB-INF/jsp/tax/role/{1}.jsp</result>
<result name="list" type="redirectAction">
<param name="actionName">role_listUI</param>
</result>
</action>
</package>
</struts>
然后在struts的总配置文件中加入我们role的配置:
<!-- 包含role的struts配置文件 -->
<include file="cn/edu/hpu/tax/role/conf/role-struts.xml"/>
然后准备前端的jsp页面:
列表页面:
listUI.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<%@include file="/common/header.jsp"%>
<title>角色管理</title>
<script type="text/javascript">
//全选、全反选
function doSelectAll(){
// jquery 1.6 前
//$("input[name=selectedRow]").attr("checked", $("#selAll").is(":checked"));
//prop jquery 1.6+建议使用
$("input[name=selectedRow]").prop("checked", $("#selAll").is(":checked"));
}
//新增
function doAdd(){
document.forms[0].action = "${basePath}tax/role_addUI.action";
document.forms[0].submit();
}
//编辑
function doEdit(id){
document.forms[0].action = "${basePath}tax/role_editUI.action?role.roleId=" + id;
document.forms[0].submit();
}
//删除
function doDelete(id){
document.forms[0].action = "${basePath}tax/role_delete.action?role.roleId=" + id;
document.forms[0].submit();
}
//批量删除
function doDeleteAll(){
document.forms[0].action = "${basePath}tax/role_deleteSelected.action";
document.forms[0].submit();
}
</script>
</head>
<body class="rightBody">
<form name="form1" action="" method="post">
<div class="p_d_1">
<div class="p_d_1_1">
<div class="content_info">
<div class="c_crumbs"><div><b></b><strong>角色管理 </strong></div> </div>
<div class="search_art">
<li>
角色名称:<s:textfield name="role.name" cssClass="s_text" id="roleName" cssStyle="width:160px;"/>
</li>
<li><input type="button" class="s_button" value="搜 索" οnclick="doSearch()"/></li>
<li style="float:right;">
<input type="button" value="新增" class="s_button" οnclick="doAdd()"/>
<input type="button" value="删除" class="s_button" οnclick="doDeleteAll()"/>
</li>
</div>
<div class="t_list" style="margin:0px; border:0px none;">
<table width="100%" border="0">
<tr class="t_tit">
<td width="30" align="center"><input type="checkbox" id="selAll" οnclick="doSelectAll()" /></td>
<td width="120" align="center">角色名称</td>
<td align="center">权限</td>
<td width="80" align="center">状态</td>
<td width="120" align="center">操作</td>
</tr>
<s:iterator value="roleList" status="st">
<tr <s:if test="#st.odd">bgcolor="f8f8f8"</s:if> >
<td align="center"><input type="checkbox" name="selectedRow" value="<s:property value='roleId'/>"/></td>
<td align="center"><s:property value="name"/></td>
<td align="center">
<s:iterator value="rolePrivileges">
<s:property value="#privilegeMap[id.code]"/>
</s:iterator>
</td>
<td align="center"><s:property value="state==1?'有效':'无效'"/></td>
<td align="center">
<a href="javascript:doEdit('<s:property value='roleId'/>')">编辑</a>
<a href="javascript:doDelete('<s:property value='roleId'/>')">删除</a>
</td>
</tr>
</s:iterator>
</table>
</div>
</div>
<div class="c_pate" style="margin-top: 5px;">
<table width="100%" class="pageDown" border="0" cellspacing="0"
cellpadding="0">
<tr>
<td align="right">
总共1条记录,当前第 1 页,共 1 页
<a href="#">上一页</a> <a href="#">下一页</a>
到 <input type="text" style="width: 30px;" οnkeypress="if(event.keyCode == 13){doGoPage(this.value);}" min="1"
max="" value="1" />
</td>
</tr>
</table>
</div>
</div>
</div>
</form>
</body>
</html>
添加界面
addUI.action:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<%@include file="/common/header.jsp"%>
<title>角色管理</title>
</head>
<body class="rightBody">
<form id="form" name="form" action="${basePath }tax/role_add.action" method="post" enctype="multipart/form-data">
<div class="p_d_1">
<div class="p_d_1_1">
<div class="content_info">
<div class="c_crumbs"><div><b></b><strong>角色管理</strong> - 新增角色</div></div>
<div class="tableH2">新增角色</div>
<table id="baseInfo" width="100%" align="center" class="list" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td class="tdBg" width="200px">角色名称:</td>
<td><s:textfield name="role.name" /></td>
</tr>
<tr>
<td class="tdBg" width="200px">角色权限:</td>
<td>
<s:checkboxlist list="#privilegeMap" name="privilegeIds"></s:checkboxlist>
</td>
</tr>
<tr>
<td class="tdBg" width="200px">状态:</td>
<td><s:radio list="#{'1':'有效','0':'无效'}" name="role.state"/></td>
</tr>
</table>
<div class="tc mt20">
<input type="submit" class="btnB2" value="保存" />
<input type="button" οnclick="javascript:history.go(-1)" class="btnB2" value="返回" />
</div>
</div></div></div>
</form>
</body>
</html>
编辑页面:
editUI.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<%@include file="/common/header.jsp"%>
<title>角色管理</title>
</head>
<body class="rightBody">
<form id="form" name="form" action="${basePath }tax/role_edit.action" method="post" enctype="multipart/form-data">
<div class="p_d_1">
<div class="p_d_1_1">
<div class="content_info">
<div class="c_crumbs"><div><b></b><strong>角色管理</strong> - 编辑角色</div></div>
<div class="tableH2">编辑角色</div>
<table id="baseInfo" width="100%" align="center" class="list" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td class="tdBg" width="200px">角色名称:</td>
<td><s:textfield name="role.name" /></td>
</tr>
<tr>
<td class="tdBg" width="200px">角色权限:</td>
<td>
<s:checkboxlist list="#privilegeMap" name="privilegeIds"></s:checkboxlist>
</td>
</tr>
<tr>
<td class="tdBg" width="200px">状态:</td>
<td><s:radio list="#{'1':'有效','0':'无效'}" name="role.state"/></td>
</tr>
</table>
<s:hidden name="role.roleId"/>
<div class="tc mt20">
<input type="submit" class="btnB2" value="保存" />
<input type="button" οnclick="javascript:history.go(-1)" class="btnB2" value="返回" />
</div>
</div></div></div>
</form>
</body>
</html>
下面我们来测试,首先访问列表界面http://localhost/HpuTax/tax/role_listUI.action:
可以看到是空的,我们还没有添加数据,我们点击新增
添加管理员角色和棋权限,然后点击保存:
回到列表看到数据添加成功,
然后点击编辑
将权限更改
发现更改成功!
同样点击删除删除成功,这里不再演示。
至此我们的权限管理功能块完成。
转载请注明出处:http://blog.csdn.net/acmman/article/details/49513077