2011-01-06 79 views
2

我建立一個簡單的研究例行蒙山2日期字段selectOneMenu用於和一個按鈕:爲什麼這些Seam字段值不具有約束力?

<h:form id="pesquisaAbastecimentoForm"> 
<table> 
    <tr> 
     <td> 
      <s:decorate id="dataInicialField" template="../layout/edit.xhtml"> 
       <ui:define name="label" id="labelDataInicial">Data Inicial</ui:define> 
       <rich:calendar id="dataInicial" value="#{abastecimentoAction.dataInicialPesquisa}" 
        datePattern="dd/MM/yyyy HH:mm" /> 
      </s:decorate> 
      <s:decorate id="dataFinalField" template="../layout/edit.xhtml"> 
       <ui:define name="label" id="labalDataFinal">Data Final</ui:define> 
       <rich:calendar id="dataFinal" value="#{abastecimentoAction.dataFinalPesquisa}" 
        datePattern="dd/MM/yyyy HH:mm" /> 
      </s:decorate>       
     </td> 
     <td> 
      <s:decorate id="carroField" template="../layout/edit.xhtml"> 
       <ui:define name="label">Carro</ui:define> 
       <h:selectOneMenu value="#{abastecimentoAction.idCarroPesquisa}" required="false"> 
        <s:selectItems var="carro" value="#{carroList.resultList}" label="#{carro.nome}" itemValue="#{carro.id}" /> 
       </h:selectOneMenu> 
      </s:decorate> 
      <s:div styleClass="actionButtons"> 
       <s:button action="#{abastecimentoAction.pesquisaAbasatecimentos}" id="pesquisaAbastecimentos" value="Pesquisar Abastecimento"> 
       </s:button> 
      </s:div> 
     </td> 
    </tr> 
</table> 
</h:form> 

而且我有一個Seam組件,他們應該得到的值,並得到執行的方法pesquisaAbastecimentos。

@Name("abastecimentoAction") 
@Scope(ScopeType.CONVERSATION) 
public class AbastecimentoAction implements Serializable { 

    private static final long serialVersionUID = -2008939547568730028L; 

    @Logger 
    Log log; 

    @In 
    EntityManager entityManager; 

    @In 
    User user; 

    //variáveis para pesquisa do abastecimento 
    private Date dataInicialPesquisa; 
    private Date dataFinalPesquisa; 
    private int idCarroPesquisa; 

    @DataModel 
    List<AbastecimentoMensal> listaAbastecimentoMensal; 

    @SuppressWarnings("unchecked") 
    @Create 
    public void pesquisaAbasatecimentos() { ... } 

public Date getDataInicialPesquisa() { 
     return dataInicialPesquisa; 
    } 

    public void setDataInicialPesquisa(Date dataInicialPesquisa) { 
     this.dataInicialPesquisa = dataInicialPesquisa; 
    } 

    public Date getDataFinalPesquisa() { 
     return dataFinalPesquisa; 
    } 

    public void setDataFinalPesquisa(Date dataFinalPesquisa) { 
     this.dataFinalPesquisa = dataFinalPesquisa; 
    } 

    public int getIdCarroPesquisa() { 
     return idCarroPesquisa; 
    } 

    public void setIdCarroPesquisa(int idCarroPesquisa) { 
     this.idCarroPesquisa = idCarroPesquisa; 
    } 

該方法已正確執行,但字段值永遠不會填充。由於我對煤層比較陌生,所以無法找出爲什麼這些區域沒有被煤層框架正確填充。當按下按鈕並調用方法時,這些值實際上是null和0。任何線索?

tx提前。 []中

回答

4

變化

<s:button action="#{abastecimentoAction.pesquisaAbasatecimentos}" id="pesquisaAbastecimentos" value="Pesquisar Abastecimento"> 
      </s:button> 

<h:commandButton action="#{abastecimentoAction.pesquisaAbasatecimentos}" id="pesquisaAbastecimentos" value="Pesquisar Abastecimento"> 
      </h:commandButton> 

原因它不工作是因爲<s:button>執行HTTP GET,不發表您的形式。

如果不起作用,您還應該將int更改爲Integer

+0

不客氣。 – 2011-01-07 21:39:43