ICEfaces:如何将参数从一个页面传递到另一个页面

时间:2010-11-18 19:59:16

标签: request icefaces

我有这个简单的场景不起作用:我使用icefaces,我有一个带有一些inputTexts和一个提交按钮的简单页面,这个按钮将重定向到另一个页面,它将显示这些inputTexts的值......我的问题是如何从请求中获取这些inputTexts的值并将其显示在另一个页面中?

当我在其他页面backbean中使用以下API时,我只获取包含inputTexts的页面的名称:

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

我确实花了很多时间试图让这个东西起作用,所以任何帮助都会受到赞赏.. THx

我的网页代码是:

<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 个答案:

答案 0 :(得分:1)

您可以将另一个bean与当前的bean绑定为faces-config.xml中的托管属性,如下所示。

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

Class NewContest {

public AnotherBackingBean anotherBackingBean;

//-- set/get & other methods

public String redirectToAnotherBackingBean(){

        anotherBackingBean.setSomeObject(object);

        //-- set custom fields

        return "view-anotherBackingBean";
     }

}

然后,您可以在其他bean中直接使用已在当前bean中设置的字段。