?? roleaction.java
字號:
package com.action;
import org.apache.struts.action.*;
import java.io.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;
import java.sql.SQLException;
import com.bean.ClientTable;
import com.tool.pagetool.*;
import com.tool.QueryStrCreator;
import com.tool.LogTableWriter;
import com.dao.RoleUrlDAO;
import com.bean.RoleUrl;
import com.bean.RoleUrlItem;
import com.dao.RoleUrlItemDAO;
import java.util.Vector;
public class RoleAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
request.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=gb2312");
String flag = request.getParameter("flag");
String target = "";
ActionErrors actionErrors = new ActionErrors();
if (flag.equals("add")) { //添加權限
String urlName = request.getParameter("roleName");
String[] urls = request.getParameterValues("urls2");
try {
RoleUrlDAO.startTransation();
int lastRoleId = RoleUrlDAO.getLastId();
RoleUrl roleUrl = new RoleUrl();
roleUrl.setDelFlag(0);
roleUrl.setMenuFlag(0);
roleUrl.setUrlId(lastRoleId + 1);
roleUrl.setUrlName(urlName);
roleUrl.setUrlPath("");
RoleUrlDAO.insertRoleUrl(roleUrl);
int lastUrlItemId = RoleUrlItemDAO.getLastId();
for (int i = 0; i < urls.length; i++) {
RoleUrlItem roleUrlItem = new RoleUrlItem();
roleUrlItem.setDelFlag(0);
roleUrlItem.setRoleItemId(lastUrlItemId + 1 + i);
roleUrlItem.setUrlId(lastRoleId + 1);
roleUrlItem.setUrlPath(urls[i]);
RoleUrlItemDAO.insertRoleUrlItem(roleUrlItem);
}
RoleUrlDAO.commit();
ActionError actionError = new ActionError(
"errors.addSuccese");
actionErrors.add("addGroupSuccese", actionError);
saveErrors(request, actionErrors);
// request.getSession().setAttribute("modifyRoleWriteJs", null);
} catch (Exception e) {
e.printStackTrace();
RoleUrlDAO.rollback();
ActionError actionError = new ActionError(
"errors.generally.failed", e.getMessage());
actionErrors.add("addClientSuccese", actionError);
saveErrors(request, actionErrors);
}
target = "addRoleUrl";
} else if (flag.equals("forModify")) { //跳到修改權限
writeJs(request);//將權限列表寫到js文件中
target = "modifyRoleUrl";
} else if (flag.equals("modify")) { //修改權限名
String roleIdStr = request.getParameter("roleName"); //前臺roleName傳來的值是roleId
String[] rolePathArray = request.getParameterValues("urls2");
String newRoleName = request.getParameter("newRoleName");
if (roleIdStr == null)return mapping.
findForward("modifyRoleUrl");
try {
int roleId = new Integer(roleIdStr).intValue();
// System.out.println("roleId="+roleId);
if (rolePathArray == null) {//刪除當前URLID的全部PATH
RoleUrl tmp = new RoleUrl();
tmp.setUrlId(roleId);
RoleUrlItemDAO.realDeleteByRoleId(tmp);
// request.getSession().setAttribute("modifyRoleWriteJs", null);
writeJs(request);//重寫js的權限列表
return mapping.
findForward("modifyRoleUrl");
}
RoleUrlItemDAO.startTransation();
RoleUrl roleUrl = (RoleUrl) RoleUrlDAO.selectRoleUrlByurlId(
roleId);
if (newRoleName != null && !newRoleName.equals(""))
roleUrl.setUrlName(newRoleName);
if (roleUrl.getUrlPath() == null) roleUrl.setUrlPath("");
RoleUrlDAO.updateRoleUrl(roleUrl);
RoleUrlItemDAO.realDeleteByRoleId(roleUrl); //先刪除當前權限所有的PATH
//將所先的PATH添加到當前“權限名”
int lastRoleItemId = RoleUrlItemDAO.getLastId();
for (int i = 0; i < rolePathArray.length; i++) {
RoleUrlItem roleItem = new RoleUrlItem();
roleItem.setDelFlag(0);
roleItem.setRoleItemId(lastRoleItemId + i + 1);
roleItem.setUrlId(roleId);
roleItem.setUrlPath(rolePathArray[i]);
RoleUrlItemDAO.insertRoleUrlItem(roleItem);
}
RoleUrlItemDAO.commit();
request.getSession().setAttribute("modifyRoleWriteJs", null);
writeJs(request);//重寫js的權限列表
ActionError actionError = new ActionError(
"errors.addSuccese");
actionErrors.add("addGroupSuccese", actionError);
saveErrors(request, actionErrors);
} catch (Exception e) {
e.printStackTrace();
RoleUrlItemDAO.rollback();
ActionError actionError = new ActionError(
"errors.generally.failed", e.getMessage());
actionErrors.add("addClientSuccese", actionError);
saveErrors(request, actionErrors);
}
target = "modifyRoleUrl";
}
return mapping.findForward(target);
}
/**
* 成生權限列表js
* @param request HttpServletRequest
* @param allRole List
* @param allRoleItem List
* @throws Exception
*/
private void writeJs(HttpServletRequest request
) throws Exception {
HttpSession session = request.getSession();
// Object obj = session.getAttribute("modifyRoleWriteJs");
// if (obj != null)return;//如果已經寫了,則退出
List allRole=null;
List allRoleItem=null;
allRole = (List)session.getAttribute("allRole");
allRoleItem = (List)session.getAttribute("allRoleItem");
String urlIdStr=(String)request.getParameter("roleName");
System.out.println("urlIdStr="+urlIdStr);
if((allRole==null&&allRoleItem==null)||urlIdStr!=null) {
allRole = RoleUrlDAO.selectAllRoleUrl();
allRoleItem = RoleUrlItemDAO.selectAllRoleUrlItem();
session.setAttribute("allRole",allRole);
session.setAttribute("allRoleItem",allRoleItem);
}
int urlId =-1;
if(urlIdStr==null) return;
List roleItems = new Vector();
try{
urlId = Integer.parseInt(urlIdStr);
for(int i=0;i<allRoleItem.size();i++){
RoleUrlItem roleUrlItem = (RoleUrlItem) allRoleItem.get(i);
if(roleUrlItem.getUrlId()==urlId) roleItems.add(roleUrlItem);
}
System.out.println("urlId="+urlId);
request.setAttribute("RoleIdInger",new Integer(urlId));
request.setAttribute("roleItems",roleItems);
}catch(Exception e){
e.printStackTrace();
throw e;
}
// String realPath = this.servlet.getServletContext().getRealPath("/");
// realPath += "\\manager\\roleNameAndroleItemList.js";
// String writeStr = "// JavaScript Document\n";
// writeStr += "var roleId = new Array();\n" +
// "var roleName = new Array();\n" +
// "var role = new Array();\n" +
// "var roleUrlId = new Array();\n" +
// "var roleItemId = new Array();\n" +
// "var roleItemPath = new Array();\n" +
// "var roleItem = new Array();\n\n";
// for (int i = 0; i < allRole.size(); i++) {
// RoleUrl roleUrl = (RoleUrl) allRole.get(i);
// writeStr += "roleId[" + i + "]=" + roleUrl.getUrlId() + ";\n" +
// "roleName[" + i + "]='" + roleUrl.getUrlName() + "';\n";
// }
// writeStr += "\n";
// for (int j = 0; j < allRoleItem.size(); j++) {
// RoleUrlItem roleUrlItem = (RoleUrlItem) allRoleItem.get(j);
// writeStr += "roleUrlId[" + j + "]=" + roleUrlItem.getUrlId() +
// ";\n" +
// "roleItemId[" + j + "]=" + roleUrlItem.getRoleItemId() +
// ";\n" +
// "roleItemPath[" + j + "]='" + roleUrlItem.getUrlPath() +
// "';\n";
// }
// writeStr += "\n" +
// "role[0]=roleId;\n" +
// "role[1]=roleName;\n" +
// "roleItem[0]=roleUrlId;\n" +
// "roleItem[1]=roleItemId;\n" +
// "roleItem[2]=roleItemPath;\n\n";
//
// java.io.FileWriter fileWriter = new FileWriter(realPath);
// fileWriter.write(writeStr);
// fileWriter.flush();
// fileWriter.close();
// session.setAttribute("modifyRoleWriteJs", "true");
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -