2011-10-07 14 views
1

我在項目中使用jsf 2.0,primefaces 3.0M3和jboss 6.0.0。我試圖在primefaces展示中編輯表格單元格,但保存和取消的事件沒有被解僱。所以,我決定嘗試使用inplace元素在datable中只編輯一個字段並使用save事件。它也沒有工作。其代碼如下:Primefaces在數據表內未激發就地事件

<ui:define name="search_results"> 
     <h:form id="search_results"> 
     <p:dataTable id="tbl" var="amb" value="#{environment.searchResult}"> 
      <p:column id="firstcolumn"> 
       <f:facet id="nameFct" name="header">#{label['menu.admin.environment']}</f:facet> 
       <p:inplace editor="true" effectSpeed="fast" event="dblclick"> 
        <p:inputText value="#{amb.dsAmbiente}" /> 
        <p:ajax event="save" listener="#{environment.update(amb)}" /> 
       </p:inplace> 
      </p:column> 
     </p:dataTable> 
     </h:form> 
    </ui:define> 

和那個叫聽者

@Named("environment") 
@ViewScoped 
public class Environment extends AbstractBean implements Serializable{ 
private static final long serialVersionUID = 1L; 

private AmbienteRemote environmentRemote; 
private List<Empresa> companies; 
private Ambiente env; 
@Inject 
private transient FacesContext context; 
@Inject 
private transient Messages messages; 
private String compSearch; 
private String envSearch; 
private EnumFlStatusAmbiente statusSearch; 
private List<Ambiente> searchResult; 

public Environment() 
{ 

} 
//.... 

public String update(final Ambiente amb) 
{ 
    System.out.println("update"); 

    return null; 
} 

//.... 
} 

任何人可以幫助類?

感謝

凱利

+0

? – bertie

回答

0

CDI組件(具有@Named註釋)沒有@ViewScoped。
您不能將JSF Managed Beans導入與CDI導入混合在一起。

嘗試使用sessionScope(記得 - 類必須實現Serializable)。

(PS:也許你會使用錯誤的進口,如
import javax.faces.bean.SessionScoped;
代替
import javax.enterprise.context.SessionScoped;

相關問題