0
votes

I have this simple scenario which doesn't work: I use icefaces and i have a simple page with some inputTexts and a submit button, this button will redirect to another page that will display the values of these inputTexts... my question is how can i get the values of these inputTexts from the request and display them in another page?

When i use the following API in the other page backbean, i get only the name of the page that holds the inputTexts:

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

I really did spent alot of time trying to get this thing to work, so any help will be appreciated.. THx

my page code is:

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

1

1 Answers

1
votes

You can bind another bean with current one as a managed property in faces-config.xml as follows.

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

Class NewContest {

public AnotherBackingBean anotherBackingBean;

//-- set/get & other methods

public String redirectToAnotherBackingBean(){

        anotherBackingBean.setSomeObject(object);

        //-- set custom fields

        return "view-anotherBackingBean";
     }

}

Then you can get your fields directly available in other bean which have been set in current bean.