我最近嘗試來測試IE9我的JSF應用程序,發現所有的Ajax請求失敗與MalformedXML例外試圖訪問removeChild之屬性時抱怨未定義的對象。我觀察到了MyFaces 2.0.5和mojarra 2.1.1的問題。是否有任何已知限制或先決條件來支持IE 9?JSF 2 Ajax請求失敗的IE 9
要重現的問題,我把它釘到一個簡單的測試情況下由一個Ajax請求:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<f:view contentType="text/html">
<h:head>
<h:outputScript name="jsf.js" library="javax.faces" target="head"/>
</h:head>
<h:body>
<h:form id="#{testBean.idForm}">
<h1>Test of IE9 Ajax</h1>
<h:panelGroup id="#{testBean.idDiv}" layout="block">
Text: <h:outputText value="#{testBean.text}"/>
<br/>
<h:commandLink
action="#{testBean.onAction}"
value="click me">
<f:ajax render="#{testBean.idDiv}"/>
</h:commandLink>
</h:panelGroup>
</h:form>
</h:body>
</f:view>
</html>
的bean是
package ietest;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class TestBean {
private int clickCount;
private String idForm="testForm";
private String idDiv="testDiv";
public String getText(){
String text = "you clicked " + clickCount +" times";
System.out.println("Return text " + text);
return text;
}
public String onAction(){
System.out.println("onAction invoked");
clickCount++;
return "iebug";
}
public String getIdDiv() {
return idDiv;
}
public String getIdForm() {
return idForm;
}
}
是的,我想知道這些組件標識符。 id屬性只接受文字(組件不會解析這些表達式)。儘管如此,他們似乎在Facelets的樹創建時間被解決和強制。在這個問題上,我還沒有找到任何規範。 – McDowell 2011-05-10 11:20:44
@McDowell:是的,這種支持在JSF2中是新的。 – BalusC 2011-05-10 11:23:22
我只是面對同樣的問題,但與Mojarra 2.0.2和IE9。這必須是McDowells答案中引用的[Mojarra問題](http://java.net/jira/browse/JAVASERVERFACES-1981)。 Mojarra 2.1同時解決了這個問題。但我應該如何處理版本2.0.2? – 2011-05-19 09:11:09