本文介绍在JSF/JSP中集成FCKEditor,以及保存HTML编辑内容,你只需要通过获得到的HttpServletRequest对象获取页面提交中的Parameter对象等。

现在,FCKEditor (http://www.FCKEditor.net/) 是开源社区一款强壮的HTML修改器,现在***版别是2.6,支撑Java的插件版别是2.4Beta1。

在JSF/JSP中集成FCKEditor(jsp jsf)  FCKEditor JSF JSP 第1张

关于一般的Java Web运用,咱们能够经过直接插入JavaScript代码来结构页面,这种方法操作起来比较简练,也是通用在所有web页面的一种方法。可是,在实践的 Java Web运用中,咱们除了用到一般的页面修改功用之外,难免会考虑到页面上传图片、附件等功用。所以,单纯运用JavaScript方法的话,这一大堆的文件上传代码将由你自己来写了,工程量仍是比较浩大的。自然而然,咱们会想到Jsp Tag,有没有现成的快餐式的页面标签呢?答案是必定的,就如我上文说到的Java插件就现已完成了这些功用,并集成了Apache Commons-FileUpload,以此来完成文件服务器上传。

2.4版的Java插件现已封装得愈加简练,不同于之前的其他版别。标签的运用方法是

  1. JSP:body>
  2. FCK:editor>

在JSF运用中,由于页面都是JSF自界说标签,关于其他标签的内容,JSF不会主动将后台Bean中的值绑定到,那么咱们还要做做文章,经过一段JavaScript绑定到body_onload()拜见中,以此将JSF 标签的内容传递给。

  1. functionrenderMessage(){
  2. YAHOO.util.Dom.get("EditorDefault").value=YAHOO.util.Dom.get("form:content").value;
  3. }
  4. script>
  5. h:inputTextarea>
  6. h:form>
  7. f:view>


保存HTML修改内容的时分,你只需求经过获得到的HttpServletRequest目标获取页面提交中的Parameter目标,示例代码如下:

  1. publicMapgetParamMap(){
  2. returngetFacesContext().getExternalContext().getRequestParameterMap();
  3. }
  4. publicStringgetParamAsString(StringparamName){
  5. Objectobj=getParamMap().get(paramName);
  6. if(obj!=null){
  7. returnobj.toString();
  8. }else{
  9. return"";
  10. }
  11. }
  12. publicStringsaveMessage(){
  13. if(message==null){
  14. setErrMsg("Messagedoesnotexist.");
  15. returnnull;
  16. }
  17. Stringcontent=getParamAsString("EditorDefault");
  18. if(content==null||content.length()==0){
  19. setErrMsg("Messagemustnotbeempty.");
  20. returnnull;
  21. }
  22. }

其他方面,咱们需求在自己的web.xml中界说FCKEditor相关的Servlet:

  1. Connectorservlet-name>
  2. net.fckeditor.connector.ConnectorServlet
  3. servlet-class>
  4. 1load-on-startup>
  5. servlet>
  6. Connectorservlet-name>
  7. /fckeditor/editor/filemanager/connectors/*
  8. url-pattern>
  9. servlet-mapping>

管中窥豹需求注明的是,/fckeditor这个web根目录下的目录来源于FCKEditor的核心包(Ver 2.6),能够在官方网站上面下载得到。

在目录/fckeditor下面有一个重要的文件fckconfig.js,里边能够装备许多FCKEditor在页面上的展现风格,我们能够细心渐渐研讨 :)

PS: 考虑到安全问题,主张我们把FCKEditor界面上的Source Code按钮屏蔽掉,避免黑客的歹意脚本的损坏。

在我的实践运用中,由于要约束上传文件的权限,所以我要用到权限操控。幸亏FCKEditor供给了相应的UserAction接口,能够让我自己完成一个类来操控权限。

  1. packagecom.tail.utils;
  2. importjavax.servlet.http.HttpServletRequest;
  3. importjavax.servlet.http.HttpSession;
  4. importnet.fckeditor.requestcycle.UserAction;
  5. importcom.tail.beans.Principal;
  6. importcom.tail.objects.User;
  7. publicclassUserActionImplimplementsUserAction{
  8. publicbooleanisEnabledForFileBrowsing(HttpServletRequestreq){
  9. returntrue;
  10. }
  11. publicbooleanisEnabledForFileUpload(HttpServletRequestreq){
  12. HttpSessionsession=req.getSession();
  13. Principalprincipal=(Principal)session.getAttribute(ConstantUtil.SESSION_PRINCIPAL);
  14. if(principal!=null){
  15. Useruser=principal.getUser();
  16. if(user.isUploadable()){
  17. returntrue;
  18. }
  19. }
  20. returnfalse;
  21. }
  22. }em>

怎么加载自界说的UserAction类呢?在classes的根目录下,你需求界说一个fckeditor.properties文件:

  1. connector.userActionImpl=com. tail.utils.UserActionImplem>

这样你就能够操控文件上传的权限了。

【修改引荐】

  1. JSF的工作方法
  2. Acegi安全体系与JSF结合
  3. JavaServer Faces(JSF)简介
  4. 在JSF中的页面导航问题
  5. 介绍JSF结构中运用的规划形式
转载请说明出处
知优网 » 在JSF/JSP中集成FCKEditor(jsp jsf)

发表评论

您需要后才能发表评论