2010-11-18 4 views
0

Ich habe dieses einfache Szenario, das nicht funktioniert: Ich benutze Icefaces und ich habe eine einfache Seite mit einigen inputTexts und eine Absenden-Taste, diese Taste wird auf eine andere Seite umleiten wird die Werte dieser inputTexts anzeigen ... meine Frage ist, wie kann ich die Werte dieser inputTexts aus der Anfrage bekommen und sie auf einer anderen Seite anzeigen?ICEfaces: Wie man Parameter von einer Seite zur anderen übergibt

Wenn ich die folgende API in der anderen Seite backbean verwenden, erhalte ich nur den Namen der Seite, die die inputTexts hält:

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

ich wirklich viel Zeit haben damit verbracht, diese Sache zu arbeiten , so dass jede Hilfe geschätzt wird .. THx

meiner Seite Code lautet:

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

Antwort

1

Sie können eine andere Bean mit der aktuellen als verwaltete Eigenschaft in faces-config.xml wie folgt verbinden.

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

Class NewContest { 

public AnotherBackingBean anotherBackingBean; 

//-- set/get & other methods 

public String redirectToAnotherBackingBean(){ 

     anotherBackingBean.setSomeObject(object); 

     //-- set custom fields 

     return "view-anotherBackingBean"; 
    } 

} 

Dann können Sie Ihre Felder direkt in anderen Bean erhalten, die in der aktuellen Bohne eingestellt wurden.

+0

Das hat sehr gut für mich gearbeitet! Vielen Dank! nur habe ich noch ein Problem übrig, wenn das Tag der Navigationsregel hinzugefügt wird, damit der Zurückknopf funktioniert, der Wert erscheint nicht auf der folgenden Seite! was ist das?! –