2010-11-18 4 views
0

J'ai ce scénario simple qui ne fonctionne pas: j'utilise des icefaces et j'ai une page simple avec quelques inputTexts et un bouton soumettre, ce bouton redirigera vers une autre page affichera les valeurs de ces inputTexts ... Ma question est comment puis-je obtenir les valeurs de ces inputTexts de la demande et les afficher dans une autre page?ICEfaces: Comment passer des paramètres d'une page à une autre

Quand j'utilise l'API suivante dans l'autre page backbean, je reçois seulement le nom de la page qui contient les inputTexts:

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

Je ne ai vraiment passé beaucoup de temps à essayer d'obtenir cette chose à travailler , de sorte que toute aide sera appréciée .. THx

mon code page est:

<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> 

Répondre

1

Vous pouvez lier un autre bean avec la valeur actuelle en tant que propriété gérée dans faces-config.xml comme suit.

<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> 

contenu Bean

Class NewContest { 

public AnotherBackingBean anotherBackingBean; 

//-- set/get & other methods 

public String redirectToAnotherBackingBean(){ 

     anotherBackingBean.setSomeObject(object); 

     //-- set custom fields 

     return "view-anotherBackingBean"; 
    } 

} 

Ensuite, vous pouvez obtenir vos champs directement disponibles dans d'autres grains qui ont été créés dans le haricot en cours.

+0

Cela a très bien fonctionné pour moi! Merci beaucoup! seulement j'ai un problème à gauche, si ajouter la balise à la règle de navigation pour avoir le bouton de retour fonctionne, la valeur n'apparaît pas dans la page suivante! Qu'est-ce que c'est?! –

Questions connexes