私は jsf を初めて使用し、Web ページで TinyMCE をリッチ テキスト エディターとして使用したいと考えています。ここで TinyMCE が提供するインストール手順に従いました。
http://www.tinymce.com/wiki.php/%22For_Dummies%22
IDE として netbean を使用しています。-WAR プロジェクト フォルダーの直下にある "Web-Pages" フォルダーの下にある "resources" という名前のフォルダーの下に tiny_mce フォルダーを配置します。
これは 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>
これがマネージドBeanです。
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 フォルダーを置いた場所が原因でした。パッケージ内のサンプル Web ページを模倣して、.js ファイルをサンプルとして相対的な構造を持つパスに配置すると、エディターが表示されます。私が遭遇した新しい問題は、inputTextarea コンテンツを managerbean に渡す方法です。コンテンツを送信するために、以下の 2 行があります。
h:inputTextarea value="#{test.text}" p:commandButton value="submit" actionListener="#{test.print}"
私のマネージャービーンの方法
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;
}
送信すると、サーバーの出力は次のようになります。
情報: 私を設定しました!!!!!!!!! 情報: 分かった
セッターへの呼び出しが発生しても、入力したすべてのコンテンツがキャプチャされません。誰かが私を助けることができますか?ありがとうございました。