【问题标题】:p:inputText values not coming in managed beanp:inputText 值不在托管 bean 中
【发布时间】:2016-04-07 10:34:56
【问题描述】:

我有 p:treeTable 在其中我有包含所有文本字段的列现在在提交表单后我希望在托管 bean 中的 p:inputText 中的值不会出现

树表:

   <h:form id="myform">
            <p:dialog header="" widgetVar="dlg1" height="200" width="200" dynamic="true">
                <p:ajax event="close"  listener="#{popupTreeTableManagedBean.setScanParamsSubRootListNull}" />
               <p:treeTable value="#{popupTreeTableManagedBean.root}" var="node" style="" >

                    <p:column>
                        <f:facet name="header">
                            Name
                        </f:facet>
                        <h:outputText value="#{node.name}"></h:outputText>
                    </p:column>

                    <p:column>
                        <f:facet name="header">
                            Value
                        </f:facet>
                        <p:inputText value="#{node.value}" style="border-style: hidden;" immediate="true"/>
                    </p:column> 
        </p:treeTable>

                <p:commandButton value="Save" onclick="loadValues();" actionListener="#{popupTreeTableManagedBean.handleSaveButton}"/>

           </p:dialog> 
        </h:form>

MaangedBean:

public void handleSaveButton() {

        int i = scanRoot.getChildren().size();
        Iterator itr = scanRoot.getChildren().iterator();
         HashMap<String,String> valueNameHashMap = new HashMap<String,String>();

        while(itr.hasNext()) {
            Object trc = itr.next();
            DefaultTreeNode newDocument = (DefaultTreeNode) trc;
            Document newData =(Document) newDocument.getData();

            String nameOfVariable = newData.getName();
            String value = newData.getValue();
        }

         System.out.println(valueNameHashMap);
    }

【问题讨论】:

  • 你的 ManagedBean 至少是@ViewScoped吗?
  • @Geinmachi 它的'@SessionScoped'

标签: jsf primefaces treetable


【解决方案1】:

您是否尝试过将命令按钮的 ajax 属性设置为 false?

  <p:commandButton value="Save" ajax="false" actionListener="#{popupTreeTableManagedBean.handleSaveButton}"/>

这将重新加载页面并确保完成表单提交。

【讨论】:

  • 试过但不工作 p:inputText 值没有进入 bean。
  • 表单提交不是问题,因为来自另一列的所有值都出现在 backedbean 中,但不是 p:inputText
猜你喜欢
  • 1970-01-01
  • 2012-03-24
  • 1970-01-01
  • 2013-02-16
  • 1970-01-01
  • 2012-05-18
  • 2014-08-29
  • 2012-12-12
  • 1970-01-01
相关资源
最近更新 更多