1

我是 jsf 的新手,我想在我的网页上使用 TinyMCE 作为富文本编辑器。我按照 TinyMCE 在这里给出的安装说明进行操作:

http://www.tinymce.com/wiki.php/%22For_Dummies%22

我使用 netbean 作为我的 IDE。我将 tiny_mce 文件夹放在名为“resources”的文件夹下,该文件夹位于 -WAR 项目文件夹下的“Web-Pages”文件夹下,

我的 newjsf.xhtml 页面中有这个

<h:head>     
    <title>test</title>
    <script src="/resources/tiny_mce/tiny_mce.js" type="text/javascript"></script>

    <script type="text/javascript">
        tinyMCE.init({
            // General options
            mode : "textareas",
            theme : "simple"          
        });
    </script>     

</h:head>
<h:body>
    <h:form id="window">          

        <h:inputTextarea id="field" value="#{test.text}"  />

    </h:form>
</h:body>

这是托管豆。

public class test {

private String text;

public test() {
}

/**
 * @return the text
 */
public String getText() {
    return text;
}

/**
 * @param text the text to set
 */
public void setText(String text) {
    System.out.println("setted me!!!!!!!!!" + text);
    this.text = text;
}

}

我在浏览器页面上得到的只是一个纯文本区域“”,而不是一个 tinyMCE 文本编辑器。javascript 会自动用 TinyMCE 替换纯文本区域,这不是真的吗?还是我错误地指定了 tiny_mce.js 的路径,导致程序找不到加载的 .js 文件的源?奇怪的是,当我打开 newjsf.xhtml 页面时,我的 glassfish 服务器日志没有错误/异常输出。只是 TinyMCE 是纯文本区域,而不是演示中显示的内容。

谢谢!


我解决了显示问题。这确实是由我放置 tiny_mce 文件夹的地方引起的。我尝试模仿包中的示例网页,并将 .js 文件放置到具有示例的相对结构的路径中,并显示编辑器。我遇到的新问题是如何将 inputTextarea 内容传递给 managerbean。我有下面两行来提交内容。

h:inputTextarea value="#{test.text}" p:commandButton value="submit" actionListener="#{test.print}"

方法我的managerbean

public void print (){
    if (this.text == null) {
        System.out.println("why");
    } else {
        System.out.println(this.text + "i got it");
    }
}   
public String getText() {
    return text;
}
public void setText(String text) {
    System.out.println("setted me!!!!!!!!!" + text);
    this.text = text;
}

当我提交时,服务器输出是这样的。

信息:设置我!!!!!!!!!!信息:我知道了

即使触发了对 setter 的调用,我输入的所有内容也不会被捕获。有人可以帮助我吗?谢谢你。

4

1 回答 1

0

我得到它!只需添加 onclick="tinyMCE.getContent()" 内容就可以传递给 managerbean。如果您有更好的建议,请在下方留言。

于 2012-10-16T16:10:53.883 回答