[ java ] xheditor 与strut2 配置使用并提供上传图片!

来源:互联网 发布:淘宝怎么联系人工客服 编辑:程序博客网 时间:2024/04/28 14:13

js文件中如下:

$(pageInit);function pageInit(){//这是用来在线编写代码的插件  以后程序题会用得到  内置在full样式里了  即用tools:'full'就可以调用var plugins={Code:{c:'btnCode',t:'代码',h:1,e:function(){var _this=this;var htmlCode='<div><select id="xheCodeType"><option value="html">Html/Xml</option><option value="js">Javascript</option><option value="css">Css</option><option value="php">Php</option><option value="java">Java</option><option value="py">Python</option><option value="pl">Perl</option><option value="rb">Ruby</option><option value="cs">C#</option><option value="c">C++/C</option><option value="vb">Vb/Asp</option><option value="">其它</option></select></div><div><textarea id="xheCodeValue" wrap="soft" spellcheck="false" style="width:300px;height:100px;" /></div><div style="text-align:right;"><input type="button" id="xheSave" value="确定" /></div>';var jCode=$(htmlCode),jType=$('#xheCodeType',jCode),jValue=$('#xheCodeValue',jCode),jSave=$('#xheSave',jCode);jSave.click(function(){_this.loadBookmark();_this.pasteHTML('<pre class="prettyprint lang-'+jType.val()+'">'+_this.domEncode(jValue.val())+'</pre>');_this.hidePanel();return false;});_this.showDialog(jCode);}}};//不用哪种就注释掉/*全部样式*///$('.myeditor').xheditor({tools:'full',skin:'o2007silver',plugins:plugins,loadCSS:'<style>pre{margin-left:1em;border-left:5px solid #68B839;padding:0 1em;}</style>',upImgUrl:'xheditor',upImgExt:'jpg,jpeg,gif,png,bmp',forcePtag:false});//$('.myeditor').xheditor({skin:'o2007silver',html5Upload:false,upMultiple:'1',upImgUrl:'xheditor',upImgExt:'jpg,jpeg,gif,bmp,png',upLinkUrl:'Upload.do',upLinkExt:'zip,rar,txt,docx,doc,xls,xlsx,pdf'});/*简单样式*///$('.myeditor').xheditor({tools:'mini',skin:'o2007silver'});$('.myeditor').xheditor({tools:'full',skin:'o2007silver',plugins:plugins,loadCSS:'<style>pre{margin-left:1em;border-left:5px solid #68B839;padding:0 1em;}</style>',upMultiple:false,upImgUrl: "/onlinetest/JRPC",upImgExt: "jpg,jpeg,gif,bmp,png",onUpload:insertUpload});function insertUpload(msg) {var _msg = msg.toString();var _picture_name = _msg.substring(_msg.lastIndexOf("/")+1);var _picture_path = Substring(_msg);var _str = "<input type='checkbox' name='_pictures' value='"+_picture_path+"' checked='checked' onclick='return false'/><label>"+_picture_name+"</label><br/>";$("#myeditor").append(_msg);//$("#uploadList").append(_str);}//处理服务器返回到回调函数的字符串内容,格式是JSON的数据格式.function Substring(s){return s.substring(s.substring(0,s.lastIndexOf("/")).lastIndexOf("/"),s.length);}/*自定义样式*///修改tools参数即可   完整按钮表://|:分隔符  /:强制换行 Cut:剪切 Copy:复制 Paste:粘贴 Pastetext:文本粘贴 Blocktag:段落标签 Fontface:字体 FontSize:字体大小 Bold:粗体 Italic:斜体 //Underline:下划线 Strikethrough:中划线 FontColor:字体颜色 BackColor:字体背景色 SelectAll:全选 Removeformat:删除文字格式 Align:对齐 List:列表 Outdent:减少缩进 //Indent:增加缩进 Link:超链接 Unlink:删除链接 Anchor:锚点 Img:图片 Flash:Flash动画 Hr:插入水平线//Table:表格 Source:切换源代码模式 Preview:预览当前代码 Print:打印 Fullscreen:切换全屏模式//$('.myeditor').xheditor({tools:'Cut,Copy,Paste,Pastetext,Underline,Removeformat,Source,Link,Unlink,FontSize,Preview,Fullscreen',skin:'o2007silver'});}


这里使用的servlet,那么就需要在strust2中加入servlet.就需要添加filter,否则struts2

Filter类如下:

import java.io.IOException;import java.util.ArrayList;import java.util.Arrays;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;public class UploadFilter implements Filter {public void destroy() {}public void doFilter(ServletRequest req, ServletResponse resp,FilterChain chain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) req;String target = request.getRequestURI();target = target.lastIndexOf("?") > 0 ? target.substring(target.lastIndexOf("/") + 1, target.lastIndexOf("?")- target.lastIndexOf("/")) : target.substring(target.lastIndexOf("/") + 1);// System.out.println(target);if (this.includes.contains(target)) {RequestDispatcher rdsp = request.getRequestDispatcher(target);// System.out.println("go..............." + rdsp);rdsp.forward(req, resp);} elsechain.doFilter(req, resp);}private ArrayList<String> includes = new ArrayList<String>();public void init(FilterConfig config) throws ServletException {this.includes.addAll(Arrays.asList(config.getInitParameter("includeServlets").split(",")));}}

然后web.xml文件中在sturts2的filter前面增加:

<filter><filter-name>JSONRPCServlet</filter-name><filter-class>hhxy.jsjcxsy.onlinetest.web.struts2.filter.UploadFilter</filter-class><init-param><param-name>baseDir</param-name><param-value>/ARTICLE_IMG</param-value></init-param><init-param><param-name>fileExt</param-name><param-value>jpg,jpeg,gif,bmp,png</param-value></init-param><init-param><param-name>maxSize</param-name><param-value>1024000</param-value></init-param><init-param><param-name>dirType</param-name><param-value>1</param-value></init-param><init-param><param-name>includeServlets</param-name><param-value>JRPC</param-value><!--注:JRPC为下文配置的Servlet JSONRPCServlet过滤的请求配置 --></init-param></filter><filter-mapping><filter-name>JSONRPCServlet</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>JSONRPCServlet</servlet-name><servlet-class>hhxy.jsjcxsy.onlinetest.servlet.UploadFileServlet</servlet-class><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>JSONRPCServlet</servlet-name><url-pattern>/JRPC</url-pattern></servlet-mapping>