我正在使用ice:inputRichText。我想获取选定的文本 - 这与客户端相关,我的意思是 - 在服务器端操作它并将其放回编辑器(在与选定的相同的位置)。您能否建议我一些最佳实践 - 如何使用此 JSF 组件?
非常感谢。
<小时/>我还是不明白,ice:inputRichText 是如何工作的。目前,CKEDITOR 和服务器之间的通信存在很大问题。
我有一个带有 onclick 操作和服务器操作的 commandLink。 onclick 操作从 CKEDITOR 中获取选定的文本并将其放入隐藏字段。然后我可以在服务器端操作它。第一次它工作得很好。但是在该操作之后,inputRichText组件正在刷新(或类似的东西),然后不可能重复该操作(仅启动onclick部分,也启动服务器端)。如果我将 commandLInk 标记中的立即属性设置为 true,它可以工作,但我失去了应用程序的一些功能。所以我想说,ice:inputRichText 的上下文中存在一些验证错误。您能给我建议吗?
谢谢!
最佳答案
IceFaces将负责更新服务器中客户端编辑器的数据,您可以在服务器上执行操作并将值绑定(bind)保留在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";
}
}
关于javascript - InputRichText - 如何使用 Icefaces InputRichText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15625004/