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



优质内容筛选与推荐>>
1、centos7下配置nginx的mongodb驱动问题
2、在Asp.net页面中实现数据饼图
3、Linux基本命令大全
4、makefile
5、函数


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号