J'ai obtenu ce site:problème h: forme et p: ajax (Mojarra 2.0.2 et 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>
et le haricot dos:
@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");
}
}
Ce code a été Travailler sous MyFaces 2.0.0. Mais sous MyFaces 2.0.2 ou Mojarra 2.0.2 ne fonctionne pas. En disant "ne fonctionne pas", je veux dire que le fait de cliquer sur le texte d'entrée (la mise au point) ne déclenche pas l'actionListener (le texte "Started" n'apparaît pas sur la sortie standard). Quelqu'un at-il un problème similaire?
EDIT 1 (p Après avoir changé: 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>
et l'erreur est:
javax.faces.FacesException: contient un id inconnu « copingFilePhase '- impossible de le localiser dans le cadre du composant copingFilePhaseFocus
Ad. 1: J'ai les entrées appropriées dans mon fichier web.xml. Un d. 2: Ce n'est pas un problème non plus. J'importation javax.faces.event.ActionEvent pour sûr et il n'y a aucune entrée sur l'erreur dans mes fichiers journaux. f: ajax semble fonctionner correctement. Mais dans f: ajax au lieu de l'attribut "update" il y a "render".Est-ce que "render" rend le composant en dehors de son composant h: form? J'ai une erreur qui ne peut pas trouver le composant "copingFilePhase". Je vais joindre le code dans ma question originale (EDIT: code ci-joint). –
ID de préfixe avec ':'. – BalusC
Pourriez-vous écrire un exemple? Je ne comprends pas vraiment votre conseil;) –