AfficheAction.java
上传用户:lm2018
上传日期:2015-12-12
资源大小:30449k
文件大小:12k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. //Created by MyEclipse Struts
  2. // XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.0/xslt/JavaClass.xsl
  3. package com.oa.module.pub.affiche;
  4. import java.io.File;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. import java.io.InputStream;
  8. import java.io.OutputStream;
  9. import java.io.PrintWriter;
  10. import java.util.Enumeration;
  11. import java.util.Hashtable;
  12. import java.util.List;
  13. import java.util.Map;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. import javax.servlet.http.HttpSession;
  17. import org.apache.struts.action.ActionForm;
  18. import org.apache.struts.action.ActionForward;
  19. import org.apache.struts.action.ActionMapping;
  20. import org.apache.struts.actions.DispatchAction;
  21. import org.apache.struts.upload.FormFile;
  22. import com.oa.module.office.user.Tuser;
  23. import com.oa.util.ToolUtil;
  24. import com.oa.util.XPage;
  25. /** 
  26.  * MyEclipse Struts
  27.  * Creation date: 01-21-2008
  28.  * 
  29.  * XDoclet definition:
  30.  * @struts.action path="/affiche" name="afficheForm" input="/form/affiche.jsp" parameter="method" scope="request" validate="true"
  31.  */
  32. public class AfficheAction extends DispatchAction{
  33. // --------------------------------------------------------- Instance Variables
  34. private AfficheDAO affichedao;
  35. // --------------------------------------------------------- Methods
  36. /** 
  37.  * Method query
  38.  * @param mapping
  39.  * @param form
  40.  * @param request
  41.  * @param response
  42.  * @return ActionForward
  43.  */
  44. public ActionForward query(
  45. ActionMapping mapping,
  46. ActionForm form,
  47. HttpServletRequest request,
  48. HttpServletResponse response) {
  49. AfficheForm actionForm = (AfficheForm)form;
  50. //刷新数据库
  51. affichedao.renovateDataBase();
  52. //获取页面参数
  53. String pagenum = request.getParameter("currentPage");
  54. int currentPage = 1;
  55. try {
  56. currentPage = Integer.parseInt(pagenum);
  57. } catch (Exception e) {
  58. currentPage=1;
  59. }
  60. int count = 2;
  61. System.out.println(currentPage);
  62. XPage page = affichedao.getAfficheList("query",null, null,null, currentPage,count);
  63. request.setAttribute("apage",page);
  64. String datetime = ToolUtil.getNowDate();
  65. request.setAttribute("datetime",datetime);
  66. return mapping.findForward("list");
  67. }
  68. /** 
  69.  * Method show
  70.  * @param mapping
  71.  * @param form
  72.  * @param request
  73.  * @param response
  74.  * @return ActionForward
  75.  */
  76. public ActionForward show(
  77. ActionMapping mapping,
  78. ActionForm form,
  79. HttpServletRequest request,
  80. HttpServletResponse response) {
  81. String id = request.getParameter("id");
  82. int aid = ToolUtil.parseInt(id);
  83. Map list = affichedao.getAfficheById(aid);
  84. request.setAttribute("affiche",list);
  85. String task = request.getParameter("task");
  86. if(task!=null&&task.equals("look")){
  87. return mapping.findForward("show");
  88. }else{
  89. return mapping.findForward("editshow");
  90. }
  91. }
  92. /** 
  93.  * Method editlist
  94.  * @param mapping
  95.  * @param form
  96.  * @param request
  97.  * @param response
  98.  * @return ActionForward
  99.  */
  100. public ActionForward editlist(
  101. ActionMapping mapping,
  102. ActionForm form,
  103. HttpServletRequest request,
  104. HttpServletResponse response) {
  105. AfficheForm afficheForm = (AfficheForm)form;
  106. //刷新数据库
  107. affichedao.renovateDataBase();
  108. String atitle = request.getParameter("atitle");
  109. String begintime = request.getParameter("begin");
  110. String endtime = request.getParameter("end");
  111. //获取页面参数
  112. String pagenum = request.getParameter("currentPage");
  113. int currentPage = 1;
  114. try {
  115. currentPage = Integer.parseInt(pagenum);
  116. } catch (Exception e) {
  117. currentPage=1;
  118. }
  119. int count = 2;
  120. XPage page = affichedao.getAfficheList("editlist",atitle, begintime, endtime,currentPage,count);
  121. request.setAttribute("apage",page);
  122. String datetime = ToolUtil.getNowDate();
  123. request.setAttribute("datetime",datetime);
  124. return mapping.findForward("editlist");
  125. }
  126. /** 
  127.  * Method add
  128.  * @param mapping
  129.  * @param form
  130.  * @param request
  131.  * @param response
  132.  * @return ActionForward
  133.  * @throws IOException 
  134.  */
  135. public ActionForward add(
  136. ActionMapping mapping,
  137. ActionForm form,
  138. HttpServletRequest request,
  139. HttpServletResponse response) throws IOException {
  140. AfficheForm afficheForm = (AfficheForm)form;
  141. String filename = "";
  142. String filepath = "/upload/affiche/";
  143. String dirPath = getServlet().getServletContext().getRealPath("/")
  144. + "/upload/affiche/";
  145. Hashtable fileh = afficheForm.getMultipartRequestHandler()
  146. .getFileElements();
  147. for (Enumeration e = fileh.keys(); e.hasMoreElements();) {
  148. String key = (String) e.nextElement();
  149. try {
  150. FormFile file = (FormFile) fileh.get(key);
  151. filename = filename + file.getFileName().trim()+","; // 文件名
  152. InputStream stream = file.getInputStream();// 把文件读入
  153. String path = servlet.getServletContext().getRealPath(
  154. "/upload/affiche/");// 取当前系统路径
  155. OutputStream bos = new FileOutputStream(path + "/"
  156. + file.getFileName());// 建立一个上传文件的输出流
  157. int bytesRead = 0;
  158. byte[] buffer = new byte[8192];
  159. while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
  160. bos.write(buffer, 0, bytesRead);// 将文件写入服务器
  161. }
  162. bos.close();
  163. stream.close();
  164. } catch (Exception ex) {
  165. // logger.debug("出错了", ex);
  166. ex.printStackTrace();
  167. }
  168. }
  169. afficheForm.setAffixname(filename);//设置文件名称信息
  170. afficheForm.setAffixpath(filepath);//设置文件路径信息
  171. String nowdate = ToolUtil.getNowDate();//获得当前日期
  172. afficheForm.setAsendTime(nowdate);
  173. HttpSession session = request.getSession();
  174. Tuser user = (Tuser) session.getAttribute("user");
  175. afficheForm.setFuno(user.getUno());
  176. PrintWriter out = response.getWriter();
  177. String contextPath = request.getContextPath();
  178. if(affichedao.addAffiche(afficheForm)){
  179. out.print("<script>");
  180. out.print("alert('添加公告成功!');");
  181. out.print("location.href ='"+contextPath+"/affiche.do?method=editlist'");
  182. out.print("</script>");
  183. }else{
  184. out.print("<script>");
  185. out.print("alert('添加公告失败!');");
  186. out.print("history.back();");
  187. out.print("</script>");
  188. }
  189. return null;
  190. }
  191. /** 
  192.  * Method edit
  193.  * @param mapping
  194.  * @param form
  195.  * @param request
  196.  * @param response
  197.  * @return ActionForward
  198.  * @throws IOException 
  199.  */
  200. public ActionForward edit(
  201. ActionMapping mapping,
  202. ActionForm form,
  203. HttpServletRequest request,
  204. HttpServletResponse response) throws IOException {
  205. AfficheForm afficheForm = (AfficheForm)form;
  206. String filename = "";
  207. String filepath = "/upload/affiche/";
  208. String dirPath = getServlet().getServletContext().getRealPath("/")
  209. + "/upload/affiche/";
  210. Hashtable fileh = afficheForm.getMultipartRequestHandler()
  211. .getFileElements();
  212. for (Enumeration e = fileh.keys(); e.hasMoreElements();) {
  213. String key = (String) e.nextElement();
  214. try {
  215. FormFile file = (FormFile) fileh.get(key);
  216. filename = filename + file.getFileName().trim()+","; // 文件名
  217. InputStream stream = file.getInputStream();// 把文件读入
  218. String path = servlet.getServletContext().getRealPath(
  219. "/upload/affiche/");// 取当前系统路径
  220. OutputStream bos = new FileOutputStream(path + "/"
  221. + file.getFileName());// 建立一个上传文件的输出流
  222. int bytesRead = 0;
  223. byte[] buffer = new byte[8192];
  224. while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
  225. bos.write(buffer, 0, bytesRead);// 将文件写入服务器
  226. }
  227. bos.close();
  228. stream.close();
  229. } catch (Exception ex) {
  230. // logger.debug("出错了", ex);
  231. ex.printStackTrace();
  232. }
  233. }
  234. afficheForm.setAffixname(filename);//设置文件名称信息
  235. afficheForm.setAffixpath(filepath);//设置文件路径信息
  236. PrintWriter out = response.getWriter();
  237. String contextPath = request.getContextPath();
  238. if(affichedao.updateAffiche(afficheForm)){
  239. out.print("<script>");
  240. out.print("alert('修改公告成功!');");
  241. out.print("location.href ='"+contextPath+"/affiche.do?method=editlist'");
  242. out.print("</script>");
  243. }else{
  244. out.print("<script>");
  245. out.print("alert('修改公告失败!');");
  246. out.print("history.back();");
  247. out.print("</script>");
  248. }
  249. return null;
  250. }
  251. /** 
  252.  * Method update 取出公告信息到修改页面
  253.  * @param mapping
  254.  * @param form
  255.  * @param request
  256.  * @param response
  257.  * @return ActionForward
  258.  */
  259. public ActionForward update(
  260. ActionMapping mapping,
  261. ActionForm form,
  262. HttpServletRequest request,
  263. HttpServletResponse response) {
  264. String id = request.getParameter("id");
  265. int aid = ToolUtil.parseInt(id);
  266. Map list = affichedao.getAfficheById(aid);
  267. request.setAttribute("affiche",list);
  268. return mapping.findForward("edit");
  269. }
  270. /** 
  271.  * Method delete
  272.  * @param mapping
  273.  * @param form
  274.  * @param request
  275.  * @param response
  276.  * @return ActionForward
  277.  * @throws IOException 
  278.  */
  279. public ActionForward delete(
  280. ActionMapping mapping,
  281. ActionForm form,
  282. HttpServletRequest request,
  283. HttpServletResponse response) throws IOException {
  284. String id = request.getParameter("id");
  285. int aid = ToolUtil.parseInt(id);
  286. PrintWriter out = response.getWriter();
  287. String contextPath = request.getContextPath();
  288. //获取上传的文件路径
  289. Map map = affichedao.getAfficheById(aid);
  290. String filename = (String) map.get("affixname");
  291. String[] names = filename.split(",");
  292. String realpath = getServlet().getServletContext().getRealPath("");// 上下文物理路径
  293. String filepath = (String) map.get("affixpath");// 存取文件相对路径
  294. for (int i = 0; i < names.length; i++) {
  295. String path = filepath + names[i];
  296. System.out.println(path);
  297. if (path!=null&&!path.equals("")){
  298. File o = new File(realpath+"/"+path);
  299. if (o.isFile()) {
  300. o.delete();
  301. }
  302. }
  303. }
  304. if(affichedao.deleteAfficheById(aid)){
  305. out.print("<script>");
  306. out.print("alert('删除公告成功!');");
  307. out.print("location.href ='"+contextPath+"/affiche.do?method=editlist'");
  308. out.print("</script>");
  309. }else{
  310. out.print("<script>");
  311. out.print("alert('删除公告失败!');");
  312. out.print("history.back();");
  313. out.print("</script>");
  314. }
  315. return null;
  316. }
  317. /** 
  318.  * Method audit
  319.  * @param mapping
  320.  * @param form
  321.  * @param request
  322.  * @param response
  323.  * @return ActionForward
  324.  * @throws IOException 
  325.  */
  326. public ActionForward audit(
  327. ActionMapping mapping,
  328. ActionForm form,
  329. HttpServletRequest request,
  330. HttpServletResponse response) throws IOException {
  331. String id = request.getParameter("id");
  332. int aid = ToolUtil.parseInt(id);
  333. String flag = request.getParameter("flag");
  334. if(flag!=null&&flag.equals("ok")){
  335. flag = "1";
  336. }else{
  337. flag = "-1";
  338. }
  339. PrintWriter out = response.getWriter();
  340. String contextPath = request.getContextPath();
  341. if(affichedao.auditAfficheById(aid,flag)){
  342. out.print("<script>");
  343. out.print("alert('审核操作成功!');");
  344. out.print("location.href ='"+contextPath+"/affiche.do?method=auditlist'");
  345. out.print("</script>");
  346. }else{
  347. out.print("<script>");
  348. out.print("alert('审核操作失败!');");
  349. out.print("history.back();");
  350. out.print("</script>");
  351. }
  352. return null;
  353. }
  354. /** 
  355.  * Method auditlist
  356.  * @param mapping
  357.  * @param form
  358.  * @param request
  359.  * @param response
  360.  * @return ActionForward
  361.  */
  362. public ActionForward auditlist(
  363. ActionMapping mapping,
  364. ActionForm form,
  365. HttpServletRequest request,
  366. HttpServletResponse response) {
  367. //刷新数据库
  368. affichedao.renovateDataBase();
  369. List list = affichedao.getNotAudit();
  370. request.setAttribute("affiche",list);
  371. return mapping.findForward("auditlist");
  372. }
  373. /** 
  374.  * Method auditshow
  375.  * @param mapping
  376.  * @param form
  377.  * @param request
  378.  * @param response
  379.  * @return ActionForward
  380.  */
  381. public ActionForward auditshow(
  382. ActionMapping mapping,
  383. ActionForm form,
  384. HttpServletRequest request,
  385. HttpServletResponse response) {
  386. String id = request.getParameter("id");
  387. int aid = ToolUtil.parseInt(id);
  388. Map list = affichedao.getAfficheById(aid);
  389. request.setAttribute("affiche",list);
  390. return mapping.findForward("audit");
  391. }
  392. public AfficheDAO getAffichedao() {
  393. return affichedao;
  394. }
  395. public void setAffichedao(AfficheDAO affichedao) {
  396. this.affichedao = affichedao;
  397. }
  398. }