zoukankan      html  css  js  c++  java
  • xheditor 与strut2 配置使用并提供上传图片!

    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="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);
    		} else
    			chain.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>



  • 相关阅读:
    使用 SVN Hook 实现服务器端代码自动更新
    在Windows下配置svn服务端钩子程序(部分)
    @RequestParam,@PathParam,@PathVariable等注解区别
    @ConditionalOnProperty 详解
    Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
    Ajax中Delete请求参数 后台无法获取的解决方法(Restful风格)
    原生JS和jQuery版实现文件上传功能
    捡芝麻与捡西瓜
    在行动中思考
    日常相关的标准技术和组织
  • 原文地址:https://www.cnblogs.com/yangzhi/p/3576616.html
Copyright © 2011-2022 走看看