2010-11-18 6 views
0

Çalışmıyor bu basit senaryoyu kullanıyorum: Ben icefaces kullanıyorum ve bazı inputTexts ve bir gönderme düğmesiyle basit bir sayfam var, bu düğme başka bir sayfaya yönlendirilecek Bu inputTexts değerlerini gösterecek ... benim sorum bu isteklerin değerlerini bu girişten nasıl alabilirim ve başka bir sayfada nasıl görüntüleyebilirim? çalışmak için bu şey almaya çalışırken gerçekten harcanan zaman bir sürü vermediICEfaces: Parametreler bir sayfadan diğerine nasıl geçirilir

FacesContext.getCurrentInstance().getExternalContext().getRequestMap(); 

i diğer sayfa backbean aşağıdaki API kullandığınızda

i inputTexts tutan sayfanın yalnızca adını almak herhangi bir yardım takdir edilecektir, böylece .. THx

sayfam kodudur:

<ice:form id="form1"> 
<table border="0"> 
    <tbody> 
     <tr> 
      <td><ice:outputText value="Name"></ice:outputText><br></br></td> 
      <td><ice:inputText id="name" value="#{newContest.name}"></ice:inputText></td> 
     </tr> 
     <tr> 
      <td><ice:outputText value="End Date"></ice:outputText></td> 
      <td><ice:inputText id="endDate" value="#{newContest.endDate}"></ice:inputText></td> 
     </tr> 
     <tr> 
      <td><ice:outputText value="private? (only you can see the entries)"></ice:outputText></td> 
      <td><ice:inputText id="private" value="#{newContest.isPublic}"></ice:inputText></td> 
     </tr> 
     <tr> 
      <td><ice:outputText value="Price"></ice:outputText></td> 
      <td><ice:inputText id="price" value="#{newContest.price}"></ice:inputText></td> 
     </tr> 
     <tr> 
      <td><ice:outputText value="Description"></ice:outputText></td> 
      <td><ice:inputTextarea id="description" value="#{newContest.description}"></ice:inputTextarea></td> 
     </tr> 
     <tr> 
      <td><br></br><ice:commandButton value="proceed to payment" style="color:blue" action="#{newContest.createContest}"></ice:commandButton></td> 
     </tr> 
    </tbody> 
</table> 

cevap

1

Başka bir fasulyeyi, geçerli olarak, face-config.xml dosyasında yönetilen özellik olarak aşağıdaki gibi bağlayabilirsiniz.

<managed-bean> 
     <managed-bean-name>newContest</managed-bean-name> 
     <managed-bean-class>com.newContest</managed-bean-class> 
     <managed-bean-scope>request</managed-bean-scope> 

     <managed-property> 
     <property-name>anotherBackingBean</property-name> 
      <property-class>com.AnotherBackingBean</property-class> 
      <value>#{anotherBackingBean}</value> 
    </managed-property>  
    </managed-bean> 


<navigation-rule>  
      <navigation-case> 
      <from-outcome>view-anotherBackingBean</from-outcome> 
      <to-view-id>/jsp/another-page.jspx</to-view-id> 
     </navigation-case> 
    </navigation-rule> 

Bean İçerik

Class NewContest { 

public AnotherBackingBean anotherBackingBean; 

//-- set/get & other methods 

public String redirectToAnotherBackingBean(){ 

     anotherBackingBean.setSomeObject(object); 

     //-- set custom fields 

     return "view-anotherBackingBean"; 
    } 

} 

Sonra geçerli fasulye ayarlanmış diğer fasulye daki alanlar ulaşabilirsiniz alabilirsiniz.

+0

Bu benim için çok iyi çalıştı! Çok teşekkür ederim! Sadece bir problemim kaldı, eğer geri düğmesine çalışmak için etiketini gezinme kuralına eklerseniz, değer bir sonraki sayfada görünmez! o nedir?! –