如果是用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