1

我正在使用冰:inputRichText。我想获取选定的文本-这与客户端有关,我的意思是-在服务器端对其进行操作并将其放回编辑器(与所选文本在同一位置)。您能否建议我一些最佳实践 - 如何使用此 JSF 组件?

非常感谢。


我还是不明白,ice:inputRichText 是如何工作的。目前,CKEDITOR 和服务器之间的通信存在很大问题。

我有一个带有 onclick 操作和服务器操作的 commandLink。onclick 操作从 CKEDITOR 中获取选定的文本并将其放入隐藏字段。然后我可以在服务器端操作它。第一次它工作正常。但是在动作之后 inputRichText 组件正在刷新(或类似的东西),然后不可能重复该动作(仅启动 onclick 部分,也不启动服务器端)。如果我将 commandLInk 标记中的 immediate 属性设置为 true,它可以工作,但是我失去了我的应用程序的一些功能。所以我说,ice:inputRichText 的上下文中存在一些验证错误。你能给我建议吗?

谢谢!

4

1 回答 1

1

IceFaces 将负责更新服务器中客户端编辑器的数据,您可以在服务器上执行操作并将值绑定保留在 xhtml 中,IceFaces 将负责在客户端显示服务器上所做的更改。

下面是一个如何使用icefaces 富文本编辑器的示例。

<ice:inputRichText id="inptTxtSelected" value="#{mybean.note}"
      rendered="#{!empty mybean.note}"
      height="295px" toolbar="editorToolbar" width="625px"
      customConfigPath="/templates/js/richTextEditorConfig.js" saveOnSubmit="true"/>

您可以使用richTextEditorConfig.js 配置编辑器上的按钮

CKEDITOR.editorConfig = function(config) {
        config.toolbarCanCollapse = false;
        config.resize_enabled = false;
    config.toolbar = 'editorToolbar';
    config.height ='180px';
    config.baseFloatZIndex = 20000; 
    config.resize_maxWidth = "100%";    
    config.uiColor = '#E4E8F7';
    config.skin='office2003';
    config.toolbar_editorToolbar = [
 ['Preview','-','Link','Unlink','-','Bold','Italic',
       'Underline','- ','NumberedList','BulletedList']        
];
};

您的 Bean 应该具有类似的值,

public class MyBean {

    private String note;
    //getter and setter to follow

    public void manipulateText(ActionEvent e){ 
        note = "set from server";
    }
}
于 2013-03-25T23:08:46.803 回答