2017-01-14 1 views
0

jsfを使用してアプリケーションを作成していて、データテーブルの行の1つからBeanにデータを送信して別のページにリダイレクトするときに問題が発生します。ちょうど状態に、私はbootsfacesを使用しています。ここで、コードは次のとおりです。h:commandButtonが動作しない -

JSFページ:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<ui:composition template="/templates/layout.xhtml"  
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:b="http://bootsfaces.net/ui" 
    xmlns:f="http://java.sun.com/jsf/core"> 
    <ui:define name="title">Home</ui:define> 
    <ui:define name="content"> 
     <b:dataTable value="#{LeiloesMB.lista()}" var="l"> 
      <b:column> 
       <f:facet name="header"> 
        <h:outputText value="Leilao"/> 
       </f:facet> 
       <h:outputText value="#{l.leilao.id}"/> 
      </b:column> 

      <b:column> 
       <f:facet name="header"> 
        <h:outputText value="Encerramento"/> 
       </f:facet> 
       <h:outputText value="#{l.leilao.encerramento}"/> 
      </b:column> 

      <b:column> 
       <f:facet name="header"> 
        <h:outputText value="Item"/> 
       </f:facet> 
       <h:outputText value="#{l.item.nome}"/> 
      </b:column> 

      <b:column> 
       <f:facet name="header"> 
        <h:outputText value="Descrição"/> 
       </f:facet> 
       <h:outputText value="#{l.item.descricao}"/> 
      </b:column> 

      <b:column> 
       <f:facet name="header"> 
        <h:outputText value="Maior Lance"/> 
       </f:facet> 
       <h:outputText value="#{l.valor}"/> 
      </b:column> 

      <b:column> 
       <f:facet name="header"> 
        <h:outputLabel value="ID"/> 
       </f:facet> 
       <h:outputLabel value="#{l.usuario.id}"/> 
      </b:column> 

      <b:column> 
       <f:facet name="header"> 
        <h:outputLabel value="Nome"/> 
       </f:facet> 
       <h:outputLabel value="#{l.usuario.nome}"/> 
      </b:column>    

      <b:column rendered="#{not empty Usuario.user.nome}"> 
       <f:facet name="header"> 
        <h:outputLabel value="Realizar Lance"/> 
       </f:facet> 
       <h:form> 
        <h:commandButton value="Faça seu lance" action="#{LanceMB.lance(Usuario.user, l)}"/> 
       </h:form> 
      </b:column> 

     </b:dataTable> 
    </ui:define> 
</ui:composition> 

LanceMBコード:

@SessionScoped 
@ManagedBean(name="LanceMB") 
public class NovoLance { 
    private Usuario user = new Usuario(); 
    private LancesLeilao ll = new LancesLeilao(); 
    private double novo_valor; 


    public String lance(Usuario usuario, LancesLeilao lal){ 
     this.user = usuario; 
     this.ll = lal; 
     return "novolance";    
    } 

    //getters.. setters 
    } 

Usuarioコード:

@ManagedBean(name="Usuario") 
@SessionScoped 
public class UserSession { 
    private String email, senha; 
    private Usuario user = new Usuario(); 

//getters and setters.. 
} 

どの質問はコメントを残して。

+0

データテーブルの外に別のフォームがありますか? – mismanc

答えて

0

<h:commandButton />は、フォームの個々のフィールドの値を定義された管理対象Beanにプッシュするために使用されます。私はフォーム内のボタンだけを囲み、値そのものは囲まないことを確認します。

ボタンを含むフォーム内のすべての値を折り返して試してみてください。他のすべてが正しく定義されていればうまくいくはずです。

これは役に立ちます:)

関連する問題