SysPropertyAction.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. package com.key.dwsurvey.action.sysuser;
  2. import java.io.*;
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.Properties;
  6. import javax.servlet.ServletContext;
  7. import javax.servlet.http.HttpServletRequest;
  8. import com.itextpdf.text.log.SysoCounter;
  9. import com.key.common.utils.DiaowenProperty;
  10. import com.key.common.utils.EncodeUtils;
  11. import org.apache.commons.codec.binary.StringUtils;
  12. import org.apache.poi.util.StringUtil;
  13. import org.apache.struts2.convention.annotation.Namespace;
  14. import org.apache.struts2.convention.annotation.Namespaces;
  15. import org.apache.struts2.convention.annotation.Result;
  16. import org.apache.struts2.convention.annotation.Results;
  17. import com.key.common.base.action.CrudActionSupport;
  18. import com.key.common.utils.web.Struts2Utils;
  19. import com.opensymphony.xwork2.ActionSupport;
  20. /**
  21. * 系统配置
  22. * @author KeYuan(keyuan258@gmail.com)
  23. *
  24. * https://github.com/wkeyuan/DWSurvey
  25. * http://dwsurvey.net
  26. *
  27. */
  28. @Namespaces({@Namespace("/sy/system"),@Namespace("/sy/system/nosm")})
  29. //@InterceptorRefs({ @InterceptorRef("paramsPrepareParamsStack") })
  30. @Results({
  31. @Result(name=CrudActionSupport.INPUT,location="/WEB-INF/page/content/diaowen-system/property-input.jsp",type=Struts2Utils.DISPATCHER),
  32. @Result(name=CrudActionSupport.SUCCESS,location="/sy/system/sys-property!input.action",type=Struts2Utils.REDIRECT)
  33. })
  34. public class SysPropertyAction extends ActionSupport{
  35. @Override
  36. public String input() throws Exception {
  37. HttpServletRequest request = Struts2Utils.getRequest();
  38. String fileName="site.properties";
  39. ClassLoader cl = this.getClass().getClassLoader();
  40. InputStream input = cl.getResourceAsStream("conf/site/".replace("/", File.separator)+fileName);
  41. InputStreamReader fr=new InputStreamReader(input,"UTF-8");
  42. Properties p = new Properties();
  43. try {
  44. p.load(fr);
  45. fr.close();
  46. String adminEmail = p.getProperty("adminEmail");
  47. String adminQQ = p.getProperty("adminQQ");
  48. String adminTelephone = p.getProperty("adminTelephone");
  49. String icpCode = p.getProperty("icpCode");
  50. String tongjiCode = p.getProperty("tongjiCode");
  51. String loginBgImg = p.getProperty("loginBgImg");
  52. request.setAttribute("adminEmail", adminEmail);
  53. request.setAttribute("adminQQ", adminQQ);
  54. request.setAttribute("adminTelephone", adminTelephone);
  55. request.setAttribute("icpCode", icpCode);
  56. request.setAttribute("tongjiCode", tongjiCode);
  57. request.setAttribute("loginBgImg", loginBgImg);
  58. } catch (IOException e1) {
  59. e1.printStackTrace();
  60. }
  61. return INPUT;
  62. }
  63. public String save() throws Exception {
  64. //管理员邮箱
  65. String adminEmail = Struts2Utils.getParameter("adminEmail");
  66. //管理员QQ
  67. String adminQQ = Struts2Utils.getParameter("adminQQ");
  68. //管理员电话
  69. String adminTelephone = Struts2Utils.getParameter("adminTelephone");
  70. //网站备案信息代码
  71. String icpCode = Struts2Utils.getParameter("icpCode");
  72. //网站备案信息代码
  73. String loginBgImg = Struts2Utils.getParameter("loginBgImg");
  74. String siteFilePath = "/WEB-INF/classes/conf/site/site.properties".replace("/", File.separator);
  75. Properties props = new Properties();
  76. props.put("adminEmail",adminEmail!=null?adminEmail:"");
  77. props.put("adminQQ",adminQQ!=null?adminQQ:"");
  78. props.put("adminTelephone",adminTelephone!=null?adminTelephone:"");
  79. props.put("icpCode",icpCode!=null?icpCode:"");
  80. props.put("loginBgImg",loginBgImg!=null?loginBgImg:"");
  81. writeData(siteFilePath, props);
  82. //写LOGO DATA文件
  83. String headerData="<a href=\"${ctx }\"><img alt=\"\" src=\"${ctx }/images/logo/LOGO.png\" align=\"middle\" height=\"46\" ><span class=\"titleTempSpan\">OSS</span></a> ";
  84. String headerDataPath="/WEB-INF/page/layouts/logo-img.jsp".replace("/", File.separator);
  85. writeData(headerDataPath, headerData);
  86. if(adminTelephone!=null && adminEmail!=null){
  87. //写footer文件
  88. String footer1="<div class=\"dw_footcopy\" style=\"font-size: 16px;color: gray;\"><p style=\"margin-bottom: 6px;\">"
  89. +"邮箱:"+adminEmail+"&nbsp;&nbsp;&nbsp;电话:"+adminTelephone+"&nbsp;&nbsp;&nbsp;"
  90. +"<a href=\"/\" style=\"color: gray;font-size: 16px;\">"+icpCode+"</a></p></div>";
  91. String footerPath="/WEB-INF/page/layouts/footer-1.jsp".replace("/", File.separator);
  92. writeData(footerPath, footer1);
  93. String adminInfo="<div style=\"color: gray;\"><h3 style=\"line-height: 40px;\">联系信息</h3><p style=\"line-height: 40px;\">邮箱:"+adminEmail+"</p><p style=\"line-height: 40px;\">电话:"+adminTelephone+"</p><p style=\"line-height: 40px;\">"+icpCode+"</p></div>";
  94. String adminInfoPath="/WEB-INF/page/layouts/admin-info.jsp".replace("/", File.separator);
  95. writeData(adminInfoPath, adminInfo);
  96. }
  97. if(loginBgImg!=null){
  98. String loginbgimg="<div class=\"m-logbg\"><img src=\"${ctx }"+loginBgImg+"\" style=\"margin-top:0px; margin-left: 0px; opacity: 1;\" width=\"100%\" ></div>";
  99. String loginbgimgPath="/WEB-INF/page/layouts/loginbgimg.jsp".replace("/", File.separator);
  100. writeData(loginbgimgPath, loginbgimg);
  101. }
  102. return SUCCESS;
  103. }
  104. private void writeData(String filePath,String data) {
  105. OutputStreamWriter fw = null;
  106. try {
  107. ServletContext sc = Struts2Utils.getSession().getServletContext();
  108. String fileRealPath = sc.getRealPath("/") + filePath;
  109. File file = new File(fileRealPath);
  110. if (!file.exists()) {
  111. file.createNewFile();
  112. }
  113. fw = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
  114. fw.write("<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\" %>");
  115. fw.write(data);
  116. } catch (Exception e) {
  117. e.printStackTrace();
  118. } finally {
  119. if (fw != null) {
  120. try {
  121. fw.close();
  122. } catch (IOException e) {
  123. e.printStackTrace();
  124. }
  125. }
  126. }
  127. }
  128. private void writeData(String filePath,Properties props) {
  129. OutputStreamWriter fw = null;
  130. try {
  131. ServletContext sc = Struts2Utils.getSession().getServletContext();
  132. String fileRealPath = sc.getRealPath("/") + filePath;
  133. File file = new File(fileRealPath);
  134. if (!file.exists()) {
  135. file.createNewFile();
  136. }
  137. fw = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
  138. props.store(fw,"UTF-8");
  139. } catch (Exception e) {
  140. e.printStackTrace();
  141. } finally {
  142. if (fw != null) {
  143. try {
  144. fw.close();
  145. } catch (IOException e) {
  146. e.printStackTrace();
  147. }
  148. }
  149. }
  150. }
  151. public static String string2Unicode(String string) {
  152. StringBuffer unicode = new StringBuffer();
  153. for (int i = 0; i < string.length(); i++) {
  154. // 取出每一个字符
  155. char c = string.charAt(i);
  156. // 转换为unicode
  157. unicode.append("\\u" + Integer.toHexString(c));
  158. }
  159. return unicode.toString();
  160. }
  161. }