ICEfaces: как передавать параметры с одной страницы на другую - PullRequest
0 голосов
/ 18 ноября 2010

У меня есть этот простой сценарий, который не работает: я использую icefaces, и у меня есть простая страница с некоторыми inputTexts и кнопкой отправки, эта кнопка будет перенаправлять на другую страницу, которая будет отображать значения этих inputTexts ... myВопрос в том, как я могу получить значения этих inputTexts из запроса и отобразить их на другой странице?

Когда я использую следующий 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 Ответ

1 голос
/ 19 ноября 2010

Вы можете связать другой bean-компонент с текущим в качестве управляемого свойства вface-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>

Содержание бобов

Class NewContest {

public AnotherBackingBean anotherBackingBean;

//-- set/get & other methods

public String redirectToAnotherBackingBean(){

        anotherBackingBean.setSomeObject(object);

        //-- set custom fields

        return "view-anotherBackingBean";
     }

}

Затем вы можете получить свои поля, непосредственно доступные в другом бине, которые были установлены в текущем бине.

...