2
我已經設置了一個基本的測試用例,其中我遇到了一些(對我來說)奇怪的行爲。使用下面的設置時,編輯器中的輸入值只有在第二次提交時才能被h:outputText
看到。例如。在編輯TinyMCE在第二次提交時使用bean的值(使用jsf.ajax.addOnEvent)
- 變化值設置爲 「myvalue的」
- 發送Ajax的請求
- H:的outputText顯示 「測試」(來自豆默認值)編輯
- 變化值設置爲 「anothervalue」
- 發送Ajax的請求
- H:的outputText顯示 「myvalue的」
- 發送Ajax的請求
- H:的outputText顯示「anothervalue」
注:有一個定製的複合材料,如有需要,請索要代碼
的index.xhtml(它只是從下面的TinyMCE和負載.js文件創建文本域)
<h:body>
<h:form>
<mh:editor id="tinymceEditor"
value="#{bean.value}" />
<h:commandButton value="Ajax">
<f:ajax execute="tinymceEditor"
render="show" />
</h:commandButton>
<h:outputText id="show" value="#{bean.value}" />
</h:form>
</h:body>
jsfhandler.js - >包含在定製複合MH頭:編輯
jsf.ajax.addOnEvent(function(data) {
switch(data.status) {
case "begin":
tinyMCE.execCommand('mceRemoveControl',true,"tinymceEditor");
tinyMCE.triggerSave();
break;
case "complete":
tinyMCE.execCommand('mceAddControl',true,"tinymceEditor");
break;
case "success":
break;
}
});
Bean.java
@Named
@RequestScoped
public class Bean {
private String value = "test";
}
我試圖避免提交上的任何onclick事件。儘管我可以嘗試在textarea本身上使用更改事件。謝謝,JSF在幕後工作的方式隨着我需要實現的每個功能(以及您經常提供的答案)變得更加清晰。 – Aquillo 2013-05-10 12:44:39
不客氣:) – BalusC 2013-05-10 12:45:05