我有這個網站:問題與H:形式和p:阿賈克斯(鑽嘴魚科2.0.2和2.0.2 Primefaces)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head></h:head>
<h:body>
<h:form id="form-some">
<h:inputText id="copingFilePhaseFocus">
<p:ajax event="focus" actionListener="#{installationController.startCopyingWarFile}" />
</h:inputText>
</h:form>
</h:body>
</html>
和備份豆:
@ManagedBean(name = "installationController")
@SessionScoped
public class InstallationController implements IPluginInstallationListener {
// Some methods here (...)
public void startCopyingWarFile(ActionEvent event) {
System.out.println("\n\n\n\nStarted\n\n\n\n");
}
}
此代碼是在MyFaces 2.0.0下工作。但是在MyFaces 2.0.2或Mojarra 2.0.2下沒有。 通過告訴「不起作用」,我的意思是單擊(聚焦)輸入文本不會觸發actionListener(文本「開始」不會出現在標準輸出中)。 有沒有人有類似的問題?
EDIT 1(改變P上之後:AJAX到f:AJAX):
<p:outputPanel id="copingFilePhase">
<p:accordionPanel speed="0.2"
rendered="#{pluginInstallerWebBean.copingFilePhase}">
<p:tab
title="#{msg['installPlugin.copyingWar']} ... #{pluginInstallerWebBean.copingFilePhaseState}">
<h:form prependId="false">
<p:focus for="copingFilePhaseFocus" />
<h:inputText id="copingFilePhaseFocus"
rendered="#{pluginInstallerWebBean.copingFilePhaseFocus}"
style="display:none;">
<f:ajax event="focus"
render="copingFilePhase obtainingPluginInformationPhase"
listener="#{installationController.startCopyingWarFile}" />
</h:inputText>
</h:form>
#{msg['installPlugin.copyingWarDescription']}
</p:tab>
</p:accordionPanel>
</p:outputPanel>
<p:outputPanel id="obtainingPluginInformationPhase">(...)</p:outputPanel>
和錯誤是:
javax.faces.FacesException: 包含未知ID 「copingFilePhase ' - 不能在組件的上下文找到它 copingFilePhaseFocus
廣告。 1:我的web.xml文件中有適當的條目。廣告。 2:這也不是問題。我確實導入了javax.faces.event.ActionEvent,並且在我的日誌文件中沒有關於錯誤的條目。 f:阿賈克斯似乎是正確的。但在f:ajax而不是「update」屬性中有「渲染」。可以「渲染」渲染組件在h:form組件之外嗎?我有一個錯誤,找不到組件「copingFilePhase」。我將在我原來的問題中附上代碼(編輯:代碼附後)。使用`:`前綴ID: – 2010-12-04 17:21:39