2010-11-18 4 views
0

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

Когда я использую следующий API в другой странице backbean, я получаю только имя страницы, которая держит 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

Вы можете связать другой 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"; 
    } 

} 

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

+0

Это работало очень хорошо для меня! Большое спасибо! только у меня остается одна проблема, если добавить к правилу навигации тег , чтобы кнопка «Назад» работала, значение не отображается на следующей странице! что это?! –

Смежные вопросы