这几天用seam +fckeditor做一个可以发布的上传文件的新闻发布系统.
在实现的时候,发现seam2 竟然 不怎么支持MyFaces1.2,这样就导致一个问题 由MyFaces1.2支持的fckeditor jsf版本就不能使用了(看fckeditor jsf版的源码得知)。
于是便想自定义一个fckeditor jsf组件自用
附件里面是做好的文件和所需要的库(lxinblog-jsf-component.jar里面有一个web.xml配置范例,其中seam配置有点更改,只关于上传功能的)
其中
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
java-core-2.4.1.jar
slf4j-api-1.5.2.jar
slf4j-simple-1.5.2.jar
这些是fckeditor-java-demo-2.4.1 里面的lib也是上传功能的实现
lxinblog-jsf-component.jar是我自己定义的jsf-component,用来实现导出fck的js和数据的绑定
下面是我使用的一个例子
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
xmlns:my="http://lxinblog.net/jsf/component"
template="/layout/template.xhtml">
<ui:define name="body">
<rich:panel>
<f:facet name="header">写文章</f:facet>
<h:form>
<s:decorate template="/layout/edit.xhtml">
<ui:define name="label">添加到</ui:define>
<h:selectOneMenu value="#{addarticle.selectItem}">
<f:selectItems value="#{addarticle.pubitems}"/>
</h:selectOneMenu>
</s:decorate>
<s:decorate template="/layout/edit.xhtml">
<ui:define name="label">标题</ui:define>
<h:inputText styleClass="public-article-name" value="#{article.name}" required="true"/>//article是一个实体类表示文章
</s:decorate>
<div style="clear:both" />
<h:outputText value="#{messages.Context}" styleClass="name" />
<div style="clear:both" />
<my:editor styleClass="value" value="#{article.context}"></my:editor>
<div style="clear:both" />
<ui:decorate template="/layout/verify.xhtml"></ui:decorate>
<div style="clear:both" />
<h:commandButton action="#{addarticle.addArticle}" value="添加" />
</h:form>
</rich:panel>
</ui:define>
其它fck配置我就不多说了自己google下
上面只是我个人的一些小经验,如有不对,欢迎大家指出(这个没有转换'等特殊符号使用时请自行转换)
把fckeditor-java-demo-2.4.1里面的fckeditor文件夹下的要考到你的应用根目录
fckeditor-java-demo-2.4.1下载地址