springMVC下配置fckeditor2.6.6之二springMVC下整合fckeditor报错的解决方案

如果是用springMVC整合fckeditor的话,在项目启动后.文本编辑器的位置可能会出现
404的错误.
而控制台会出现类似
15:52:51,105  WARN PageNotFound:1068 : No mapping found for HTTP request with URI [/cdpz/fckeditor/editor/fckeditor.html] in DispatcherServlet with name 'cdpz'

的错误报告.
这是因为在springMVC里
对每个请求都需要通过DispatcherServlet转发.
而判断请求的方法是通过判断请求的后缀来进行的
<servlet>
		<servlet-name>lionsgdadmin</servlet-name>
		<servlet-class>
			org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>lionsgdadmin</servlet-name>
		<url-pattern>*.html</url-pattern>
	</servlet-mapping>

如上
表示后缀为.html的请求通过DispatcherServlet来进行转发.

而在fckeditor里有个fckeditor.html的静态页面
这个静态页面相当于一个编辑器的模板
单这个编辑器的模板后缀却是.html
偏偏在.html后面会跟2个参数.所以springMVC会认为他是一个请求
但在配置里却没有给他配置mappings,
所以会造成找不到页面的问题

我的解决办法是:
把web.xm配置里的请求后缀改了,改成

<servlet>
		<servlet-name>lionsgdadmin</servlet-name>
		<servlet-class>
			org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>lionsgdadmin</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

用.do来结尾.
这样问题就能解决了

在页面spring和fckeditor的绑定如下

<tr>
					<td colspan="2">
						<spring:bind path="command.updateContext">
							<FCK:editor instanceName="${status.expression}"
								toolbarSet="Default" width="800" height="600"  >
								<jsp:attribute name="value">${status.displayValue}</jsp:attribute>
							</FCK:editor>
						</spring:bind>
					</td>
				</tr>



前台在JavaScript里获得文本框的值:
 var oEditor = FCKeditorAPI.GetInstance('updateContext') ; 
		    	  document.forms[0].updateContext.value = oEditor.GetXHTML( true );



到这fckeditor基本能成功整合进springMVC了


但是,如果要实现上传图片的功能.
会出现一个BUG:
在上传中文名的图片时,页面显示的是一个红叉,但如果图片名是英文或数字时完全正常.

要解决这个问题请看下章
http://liukai.iteye.com/blog/745927

你可能感兴趣的:(JavaScript,spring,Web,servlet,fckeditor)