2015-05-13 41 views
0

我试图通过数据表从一个包含在一个bean中的List中显示数据,并且将代码中的操作作为用户类型执行。它最初显示正常,对列表的更改反映在用户界面中。JSF 2 h:绑定到List的inputText值的dataTable。值不更新

我的问题是输入到inputText中的值将被忽略。试图寻找解决方案,我已经尝试检查列表作为值更改,并试图检查没有ajax万一是这个问题(没有改变)。尝试使用会话和视图范围的bean没有运气。试图在POJO中包装字符串。

在这里疯狂。感觉我错过了一些明显的东西。任何想法?

 <h:dataTable id="multioptionanswers" 
      value="#{multiTextBean.texts}" var="texts"> 
      <h:column> 
       <f:facet name="header"> 
        <h:outputText value="Enter Values"></h:outputText> 
       </f:facet> 
       <h:inputText value="#{texts}" immediate="true"> 
         <f:ajax event="blur" execute=":addgroup" 
         render=":addgroup" 
         listener="#{multiTextBean.update}" /> 
       </h:inputText> 
     </h:column> 
    </h:dataTable> 

** ADDGROUP是数据表驻留在面板组。

+0

'h:datatable'是否包裹在'h:form'属性中? –

+0

id“addgroup”属于哪个组件? –

+0

托马斯施密特 - >它只包含在面板组中。最初它是在Panel Panel中的一种形式,但是这阻止了Ajax被调用。不知道为什么,我知道表单中的表单是不好的。我删除表单后,调用了ajax功能。 – Michael

回答

0

工作了,需要改变如何的inputText读取数据。下面的解决方案可以帮助某人:

<h:dataTable id="multioptionanswers" binding="#{table}" 
       value="#{multiTextBean.texts}" var="texts"> 
       <h:column> 
        <f:facet name="header"> 
         <h:outputText value="Enter Values"></h:outputText> 
        </f:facet> 
        <h:inputText 
         value="#{multiTextBean.texts[table.rowIndex]}"> 
         <f:ajax event="blur" execute=":addgroup"  render=":addgroup" 
         listener="#{multiTextBean.update}" /> 
       </h:inputText>  
      </h:column> 
      </h:dataTable>