2010-06-24 15 views
5

JSF güncellemesinin, bileşen bağlamının dışına yerleştirilmiş bir bileşeni olması mümkün mü?<f:ajax> bileşeninin dışındaki bir bileşenin güncellenmesi İçerik

anda Aşağıdaki sayfa çalışmıyor:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!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:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core"> 
<h:head> 
    <title>Welcome</title> 
</h:head> 

<h:body> 
    <p><h:outputText id="out" value="#{user.greeting}" /></p> 

    <h:form id="form1"> 

     <h:inputText value="#{user.name}" id="user-name" /> 
     <p><h:inputSecret value="#{user.password}" id="password" /></p> 
     <p> 
     <h:commandButton value="Login" id="login-button"> 
      <f:ajax execute="user-name password" render="out" /> 
     </h:commandButton> 
     </p> 
    </h:form> 
</h:body> 

</html> 

ben <h:form> içine #out bileşeni koyarsanız sayfa doğru icra edileceğini biliyorum. Ancak formun dışına #out bileşenini yerleştirmenin bir yolu var mı (örneğin şu anda olduğu yerde)?

cevap

10

Çözüldü! out'a :out olarak başvurmak mümkündür. Bu şekilde findComponent, görünüm kökünden başlayarak bunu arar. İşte işte çalışma çözümü:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!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:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core"> 
<h:head> 
    <title>Welcome</title> 
</h:head> 

<h:body> 
    <p><h:outputText id="out" value="#{user.greeting}" /></p> 

    <h:form id="form1"> 
     <h:inputText value="#{user.name}" id="user-name" /> 
     <p><h:inputSecret value="#{user.password}" id="password" /></p> 
     <p> 
     <h:commandButton value="Login" id="login-button"> 
      <f:ajax execute="user-name password" render=":out" /> 
     </h:commandButton> 
     </p> 
    </h:form> 
</h:body> 

</html> 
İlgili konular