Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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
Java 如何在jsf中动态添加h:inputText而不丢失先前动态添加的h:inputText值?_Java_Jsf_Jsf 2_Dynamically Generated - Fatal编程技术网

Java 如何在jsf中动态添加h:inputText而不丢失先前动态添加的h:inputText值?

Java 如何在jsf中动态添加h:inputText而不丢失先前动态添加的h:inputText值?,java,jsf,jsf-2,dynamically-generated,Java,Jsf,Jsf 2,Dynamically Generated,我试图在jsf2中动态添加h:inputText和selectOneMenu。我在这方面取得了成功。现在的新问题是,当我点击“添加新”按钮时,先前动态添加的h:inputText值被删除。我不希望这种情况发生。我的代码如下。请帮忙。:) KYCDATA模型jsf.java @ManagedBean(name = "kycDataModelJSF") @SessionScoped public class KycDataModelJSF { private KYCDTO kycdto;

我试图在jsf2中动态添加h:inputText和selectOneMenu。我在这方面取得了成功。现在的新问题是,当我点击“添加新”按钮时,先前动态添加的h:inputText值被删除。我不希望这种情况发生。我的代码如下。请帮忙。:)

KYCDATA模型jsf.java

 @ManagedBean(name = "kycDataModelJSF")
 @SessionScoped
 public class KycDataModelJSF {

private KYCDTO kycdto;

@PostConstruct
public void init(){
    addNew();
}

public KYCDTO getKycdto() {
    if (kycdto == null) {
        kycdto = new KYCDTO();
    }
    return kycdto;
}

public void setKycdto(KYCDTO kycdto) {
    this.kycdto = kycdto;
}
public void addNew() {
    if(getKycdto().getBankAccountInfoDTOs().size()<3){
     getKycdto().getBankAccountInfoDTOs().add(new BankAccountInfoDTO());
    }
    else if(getKycdto().getBankAccountInfoDTOs().size()>=3){
        FacesUtil.setErrorFacesMessage("Sorry, cannot add more than three accounts.");
    }

}
 }
@ManagedBean(name=“kycDataModelJSF”)
@会议范围
公共类KYCDATA模型JSF{
私人KYCDTO KYCDTO;
@施工后
公共void init(){
addNew();
}
公共KYCDTO getKycdto(){
if(kycdto==null){
kycdto=新kycdto();
}
返回kycdto;
}
公共无效设置KYCDTO(KYCDTO KYCDTO){
this.kycdto=kycdto;
}
公共无效addNew(){
如果(getKycdto().getBankAccountInfoDTOs().size()=3){
setErrorFacesMessage(“对不起,不能添加三个以上的帐户。”);
}
}
}
KycWebCoreBean.java

 public class KycWebCoreBean {

private KycDataModelJSF kycDataModelJSF;



public KycWebCoreBean() {
    kycDataModelJSF = (KycDataModelJSF) Util.getSessionObject("kycDataModelJSF");
    kycDependencyInjection = (KycDependencyInjection) Util.getSessionObject("kycDependencyInjection");
    applicantRegisterDataModelJSF = (ApplicantRegisterDataModelJSF) Util.getSessionObject("applicantRegisterDataModelJSF");
}

  public void addNew() {
     if(kycDataModelJSF.getKycdto().getBankAccountInfoDTOs().size()<3){
     kycDataModelJSF.getKycdto().getBankAccountInfoDTOs().add(new BankAccountInfoDTO());
    }
    else if(kycDataModelJSF.getKycdto().getBankAccountInfoDTOs().size()>=3){
        FacesUtil.setErrorFacesMessage("Sorry, cannot add more than three accounts.");
    }
}

public void remove(BankAccountInfoDTO b) {
    kycDataModelJSF.getKycdto().getBankAccountInfoDTOs().remove(b);
}
 }
公共类KycWebCoreBean{
私有KYCDATA模型JSF KYCDATA模型JSF;
公共KycWebCoreBean(){
KYCDATA模型JSF=(KYCDATA模型JSF)Util.getSessionObject(“KYCDATA模型JSF”);
kycDependencyInjection=(kycDependencyInjection)Util.getSessionObject(“kycDependencyInjection”);
AppliantRegisterDataModelJSF=(AppliantRegisterDataModelJSF)Util.getSessionObject(“AppliantRegisterDataModelJSF”);
}
公共无效addNew(){
if(KYCDATA模型JSF.getKycdto().getBankAccountInfoDTOs().size()=3){
setErrorFacesMessage(“对不起,不能添加三个以上的帐户。”);
}
}
公共作废删除(BankAccountInfoDTO b){
KYCDATA模型jsf.getKycdto().getBankAccountInfoDTOs().remove(b);
}
}
如果需要,我会提供更多信息。
提前感谢。

因为h:inputText只能存储一个值,我假设您希望将新值附加到旧值。如果是这样的话,则在setter方法中管理该属性的bean中使用

public void setValue(String value) {
        this.value = this.value + " " + value;
    }  
而不是通常

public void setValue(String value) {
        this.value = value;
    }

将值更改为“另一个字符串”后,h:inputText中的字符串“my string”的结果是“my string另一个字符串”

因为h:inputText只能存储一个值,我假设您希望将新值附加到旧值。如果是这样的话,则在setter方法中管理该属性的bean中使用

public void setValue(String value) {
        this.value = this.value + " " + value;
    }  
而不是通常

public void setValue(String value) {
        this.value = value;
    }
将值更改为“另一个字符串”后,h:inputText中的字符串为“我的字符串另一个字符串”,结果为“我的字符串另一个字符串”


*

*

输入现有输入值时,使用ajax将其发送到服务器……输入现有输入值时,使用ajax将其发送到服务器……不,朋友,我不想将新值附加到旧值。我试图动态添加h:inputText并将这些值存储在数据库中。当我点击提交按钮时,我可以将它们存储在数据库中。问题是,当我添加新的h:inputText时,以前添加的h:inputText值消失了,没有朋友,我并没有试图将新值附加到旧值。我试图动态添加h:inputText并将这些值存储在数据库中。当我点击提交按钮时,我可以将它们存储在数据库中。问题是,当我添加新的h:inputText时,以前添加的h:inputText值消失了,
  <h:dataTable id="bankAccountDataTable" value="#{kycBeanJSF.kycDataModelJSF.kycdto.bankAccountInfoDTOs}" var="item">
                                <h:column>
                                    <label class="label-control"><p:outputLabel value="आबेदकको बैंक खाता नम्बर:"/><span class="required">*</span></label>
                                    <h:inputText value="#{item.bankAccountNumber}"/>
                                </h:column>
                                <h:column>
                                    <h:selectOneRadio id="radio1" value="#{item.bankAccountType}" layout="lineDirection">
                                        <f:selectItem itemLabel="चल्ती खाता" itemValue="chalti" />
                                        <f:selectItem itemLabel="बचत खाता" itemValue="bachat" />
                                        <f:selectItem itemLabel="कॉल खाता" itemValue="call" />
                                    </h:selectOneRadio>
                                </h:column>
                                <h:column>
                                    <h:commandButton value="Remove" actionListener="#{kycBeanJSF.kycWebCoreBean.remove(item)}">
                                        <f:ajax render="@form"/>
                                    </h:commandButton>
                                </h:column>

                            </h:dataTable>
                            <h:commandButton value="Add New" actionListener="#{kycBeanJSF.kycWebCoreBean.addNew()}">
                             <f:ajax execute="bankAccountDataTable" render="bankAccountDataTable msg"/>
                            </h:commandButton>