📄 managesortaction.java
字号:
package mrgf.action;
import java.util.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import mrgf.other.Hibernate;
import mrgf.hibernate.*;
import mrgf.other.SpecialMethod;
import mrgf.form.ManageMerchandiseForm;
public class ManageSortAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ManageMerchandiseForm sortForm = (ManageMerchandiseForm) form;
String parameter = mapping.getParameter();
String forward = "";
HttpSession session = request.getSession();
Hibernate hn = new Hibernate();
// 进入现有类别管理
if (parameter.equals("manageSortManage")) {
this.querySorts(request);
forward = "manage_sort_manage";
}
// 类别管理提交
if (parameter.equals("manageFatherSort")) {
if (request.getParameter("continue") != null) {
// 保存可能的修改
this.updateSortInfo(request);
this.queryManageSort(request);
} else if (request.getParameter("submit") != null) {
// 保存可能的修改
this.updateSortInfo(request);
this.queryManageSort(request);
} else {
// 点击删除按钮
if (request.getParameter("delete0") != null) {
// 删除主类
String sid = request.getParameter("0");
int id = Integer.parseInt(sid);
String hql = "from MerchandiseSort where id=" + id;
hn.delete(hql);
} else {
// 保存可能的修改
this.updateSortInfo(request);
// 删除子类
String slength = request.getParameter("length");
int length = Integer.parseInt(slength);
String deleteId = "";
for (int i = 0; i < length; i++) {
String p = "delete" + (i + 1);
if (request.getParameter(p) != null) {
deleteId = "" + (i + 1);
break;
}
}
String sSonSortId = request.getParameter(deleteId);
int sonSortId = Integer.parseInt(sSonSortId);
String hql = "from MerchandiseSort where id=" + sonSortId;
MerchandiseSort fatherSort = (MerchandiseSort) hn
.queryOne(hql);
hn.delete(fatherSort);
this.queryManageSort(request);
}
}
this.querySorts(request);
forward = "manage_sort_manage";
}
// 提交类别选择
if (parameter.equals("selectSorts")) {
this.querySorts(request);
String sid = request.getParameter("fatherSort");
int id = Integer.parseInt(sid);
String hql = "";
hql = "from MerchandiseSort where id=" + id;
MerchandiseSort fatherSort = (MerchandiseSort) hn.queryOne(hql);
request.setAttribute("fatherSort", fatherSort);
forward = "manage_sort_manage";
}
// 进入添加新类别
if (parameter.equals("manageSortAdd")) {
if (session.getAttribute("sort") != null) {
session.removeAttribute("sort");
}
forward = "manage_sort_add";
}
// 添加新类别
if (parameter.equals("addSorts")) {
SpecialMethod sm = new SpecialMethod();
if (request.getParameter("Submit") != null) {
// 持久化新添加的类别
MerchandiseSort fatherSort;
if (request.getParameter("isUpdate").equals("false")) {
if (!request.getParameter("fatherSortName").equals("")
|| !request.getParameter("sonSortName1").equals("")) {
fatherSort = new MerchandiseSort();
fatherSort.setName(sm.toChinese(request
.getParameter("fatherSortName")));
for (int i = 1; i < 7; i++) {
if (!request.getParameter("sonSortName" + i)
.equals("")) {
MerchandiseSort sonSort = new MerchandiseSort();
sonSort.setName(sm.toChinese(request
.getParameter("sonSortName" + i)));
sonSort.setPhoto("0");
fatherSort.getSonSorts().add(sonSort);
sonSort.setFatherSort(fatherSort);
}
}
// 上传主类别图片
String dir = servlet.getServletContext().getRealPath(
"/image/layout/type");
try {
sm.upload(dir, sortForm);
} catch (Exception ex) {
System.out.println("------在上传图片时抛出异常,内容如下:");
ex.printStackTrace();
}
fatherSort.setPhoto(sortForm.getMerchandisePhotoName());
try {
hn.save(fatherSort);
} catch (Exception e) {
e.printStackTrace();
}
session.setAttribute("sort", fatherSort);
}
} else {
fatherSort = (MerchandiseSort) session.getAttribute("sort");
fatherSort.setName(sm.toChinese(request
.getParameter("fatherSortName")));
Iterator it = fatherSort.getSonSorts().iterator();
int times = 6;
int sonSortSize = fatherSort.getSonSorts().size();
if (sonSortSize > 4) {
times = sonSortSize + 2;
}
MerchandiseSort sonSort;
for (int i = 1; i <= times; i++) {
if (!request.getParameter("sonSortName" + i).equals("")) {
String sonSortName = request
.getParameter("sonSortName" + i);
sonSortName = sm.toChinese(sonSortName);
if (it.hasNext()) {
sonSort = (MerchandiseSort) it.next();
sonSort.setName(sonSortName);
} else {
sonSort = new MerchandiseSort();
sonSort.setName(sonSortName);
fatherSort.getSonSorts().add(sonSort);
sonSort.setFatherSort(fatherSort);
}
}
}
try {
hn.update(fatherSort);
} catch (Exception e) {
e.printStackTrace();
}
session.setAttribute("sort", fatherSort);
}
} else if (request.getParameter("deleteFatherSort") != null) {
// 删除新添加的主类别
MerchandiseSort fatherSort = (MerchandiseSort) session
.getAttribute("sort");
try {
hn.delete(fatherSort);
} catch (Exception e) {
e.printStackTrace();
}
session.removeAttribute("sort");
} else {
// 删除新添加的某一子类
MerchandiseSort fatherSort = (MerchandiseSort) session
.getAttribute("sort");
for (int i = 1; i <= fatherSort.getSonSorts().size(); i++) {
if (request.getParameter("deleteSonSort" + i) != null) {
String sonSortName = request.getParameter("sonSortName"
+ i);
sonSortName = sm.toChinese(sonSortName);
MerchandiseSort sonSort = (MerchandiseSort) hn
.queryOne("from MerchandiseSort where name='"
+ sonSortName + "'");
hn.delete(sonSort);
break;
}
}
fatherSort = (MerchandiseSort) hn
.queryOne("from MerchandiseSort where name='"
+ fatherSort.getName() + "'");
session.setAttribute("sort", fatherSort);
}
forward = "manage_sort_add";
}
return mapping.findForward(forward);
}
// execute方法到此结束
// 下面是一些方法
// 将添加的类别信息保存到request中
public List addSortToRequest(HttpServletRequest request, int length) {
List sorts = new ArrayList();
for (int i = 0; i < length; i++) {
String name = "" + i;
String sort = request.getParameter(name);
mrgf.other.SpecialMethod sm = new mrgf.other.SpecialMethod();
sort = sm.toChinese(sort);
if (!sort.equals("")) {
sorts.add(sort);
}
}
request.setAttribute("sorts", sorts);
return sorts;
}
// 将添加的类别信息保存到数据库中
public void saveSortToDataBase(List sorts) {
MerchandiseSort fatherSort = new MerchandiseSort();
fatherSort.setName((String) sorts.get(0));
fatherSort.setPhoto("none");
for (int i = 1; i < sorts.size(); i++) {
MerchandiseSort sonSort = new MerchandiseSort();
sonSort.setName((String) sorts.get(i));
sonSort.setPhoto("0");
fatherSort.getSonSorts().add(sonSort);
sonSort.setFatherSort(fatherSort);
}
Hibernate hn = new Hibernate();
try {
hn.save(fatherSort);
} catch (Exception e) {
e.printStackTrace();
}
}
// 从数据库中获取类别信息
public void querySorts(HttpServletRequest request) {
String hql = "";
Hibernate hn = new Hibernate();
hql = "from MerchandiseSort where photo<>'0'";
List fatherSorts = hn.query(hql);
request.setAttribute("fatherSorts", fatherSorts);
}
// 修改类别信息方法
public void updateSortInfo(HttpServletRequest request) {
Hibernate hn = new Hibernate();
SpecialMethod sm = new SpecialMethod();
String sFatherSortId = request.getParameter("0");
int fatherSortId = Integer.parseInt(sFatherSortId);
String hql = "from MerchandiseSort where id=" + fatherSortId;
MerchandiseSort fatherSort = (MerchandiseSort) hn.queryOne(hql);
// 修改已有类别名称
Iterator it = fatherSort.getSonSorts().iterator();
while (it.hasNext()) {
MerchandiseSort sonSort = (MerchandiseSort) it.next();
int id = sonSort.getId();
String name = request.getParameter("name" + id);
name = sm.toChinese(name);
if (!sonSort.getName().equals(name)) {
sonSort.setName(name);
}
}
// 添加新的子类
String pName = "name" + request.getParameter("length");
String sonSortName = request.getParameter(pName);
if (sonSortName.length() > 0) {
sonSortName = sm.toChinese(sonSortName);
MerchandiseSort newSort = new MerchandiseSort();
newSort.setName(sonSortName);
newSort.setPhoto("0");
fatherSort.getSonSorts().add(newSort);
newSort.setFatherSort(fatherSort);
}
hn.update(fatherSort);
}
// 返回当前管理类别的信息
public void queryManageSort(HttpServletRequest request) {
String sfatherSortId = request.getParameter("0");
int fatherSortId = Integer.parseInt(sfatherSortId);
String hql = "from MerchandiseSort where id=" + fatherSortId;
Hibernate hn = new Hibernate();
MerchandiseSort fatherSort = (MerchandiseSort) hn.queryOne(hql);
request.setAttribute("fatherSort", fatherSort);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -