Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 第二次调用操作时,JSF2视图作用域bean未更新_Jsf 2_Facelets - Fatal编程技术网

Jsf 2 第二次调用操作时,JSF2视图作用域bean未更新

Jsf 2 第二次调用操作时,JSF2视图作用域bean未更新,jsf-2,facelets,Jsf 2,Facelets,我有一个视图范围的arrayList作为bean。用于显示dataTable的可编辑列。当页面最初显示并且我尝试更新表内容时,更新工作正常,但是当我第二次尝试更新任何列时,更改的值不会反映在arrayList bean中(在使用断点的操作方法中验证)。action方法也是一个具有视图范围的托管bean <managed-bean> <managed-bean-name>financialListBean</managed-bean-name>

我有一个视图范围的arrayList作为bean。用于显示dataTable的可编辑列。当页面最初显示并且我尝试更新表内容时,更新工作正常,但是当我第二次尝试更新任何列时,更改的值不会反映在arrayList bean中(在使用断点的操作方法中验证)。action方法也是一个具有视图范围的托管bean

 <managed-bean>
    <managed-bean-name>financialListBean</managed-bean-name>
    <managed-bean-class>java.util.ArrayList</managed-bean-class>
    <managed-bean-scope>view</managed-bean-scope>
</managed-bean>

您的行动方法是第二次输入的吗?如果没有,客户端是否有任何错误(javascript错误)?是的,在我第二次设置断点以验证bean内容时调用了action方法。我没有看到任何javascript错误。当我第一次访问页面时,我可以进行更新@MatthandySomes ViewScoped bean的行为类似于RequestScoped bean。您是否可以调试以检查您的bean是否在提交期间/之后重新创建?我假设如果重新创建bean,它将为null,而不是以值前置?你能告诉我如何验证它是否被重新创建吗@Matthandyth这是一个有点不同寻常的设计。为什么将ArrayList定义为bean而不是
pc_SocialServicesView
bean的字段?
        <h:form id="myform">
    <h:dataTable id="financialListBean1"
    value="#{financialListBean}" var="varfinancialListBean"
    styleClass="dataTableEx" headerClass="headerClass"
    footerClass="footerClass"
    rowClasses="rowClass1, rowClass2"
    columnClasses="columnClass1" border="0" cellpadding="2"
    cellspacing="0">
    <h:column id="columnEx17">
    <h:selectBooleanCheckbox styleClass="inputRowSelect"
    id="rowSelect3" 
    value="#{varfinancialListBean.rowSelected}"></h:selectBooleanCheckbox>
    <f:facet name="header"></f:facet>
    </h:column>
    <h:column id="amount1column">
    <f:facet name="header">
    <h:outputText styleClass="outputText" value="Amount"
    id="amount1text"></h:outputText>
    </f:facet>
    <h:inputText styleClass="small8Input" id="amount1"
    value="#{varfinancialListBean.amount}" onkeypress="return only5DigitsEntry(this, event);" onkeyup="return checkRequiredFieldsForUpdateFinancialBtn(this.form, event);">
    </h:inputText>
    </h:column>
    <h:column id="type1column">
    <h:selectOneMenu styleClass="selectOneMenu" id="menu1" value="#{varfinancialListBean.type}">
    <f:selectItem itemLabel="M" itemValue="M" />
    <f:selectItem itemLabel="Y" itemValue="Y" />
    <f:selectItem itemLabel="Z" itemValue="Z" />
    <f:selectItem itemLabel="O" itemValue="O" />
    <f:selectItem itemLabel="S" itemValue="S" />
    </h:selectOneMenu>
    <f:facet name="header">
    <h:outputText styleClass="outputText" value="Type"
    id="type1text"></h:outputText>
    </f:facet>
    </h:column>
    <h:column id="recDate1column">
    <f:facet name="header">
    <h:outputText styleClass="outputText"
    value="Recieve Date" id="recDate1text"></h:outputText>
    </f:facet>
    <h:inputText styleClass="outputText" id="recDate1"
    value="#{varfinancialListBean.recDate}" 
    onclick="getClock($(this).attr('id'))" > 
    <f:convertDateTime pattern="MMM d, yyyy"/>
    </h:inputText>
    </h:column>
    </h:dataTable>
    <h:commandButton type="submit"
    value="Update Financial Information"
    styleClass="commandExButton" id="updateFinancialBtn"
    action="#{pc_SocialServicesView.doFinancialUpdateBtnAction}">
    <f:param name="mrn" value="#{pc_SocialServicesView.mrn}" />
    </h:commandButton>
    </h:form>
public String doFinancialUpdateBtnAction() {

    System.out.println("I am at doFinancialUpdateBtnAction");


    try{
        if(mrn.length()==0){
            mrn=getFacesContext().getExternalContext().getRequestParameterMap().get("mrn");
        }
             setFinancialListBean(dba.updateFinancialAsistance
      (getFinancialListBean(), mrn));
        setErrorMsgBean("Updated successfully ...");
        doInit(mrn);
    }catch (Exception e) {
     System.out.println("There is an exception at      doFinancialUpdateBtnAction");
        Log.out.error("Error in doFinancialUpdateBtnAction: "+e);
        setErrorMsgBean("No record was updated ...");
        e.printStackTrace();
    }

    return "";
}