1

こんにちは、私のアプリケーションでは、現在のアドレスに 1 つのブロックが 1 つと、永続的なアドレスにもう 1 つのブロックが 1 つあります。

現在の住所と本籍地が同じ場合、現住所フィールドを本籍地フィールドにコピーする必要があります。

ここにコードを添付しました

<h:outputText value="#{msg['elicense.examinationform.address.presentaddressline1']}" />
<p:inputText id="presentaddress1" value="#{personalBean.presentAddressLine1}" label="Present Address Line1" />
<p:watermark for="presentaddress1" value="Present Address Line1" id="presentaddressdata1"></p:watermark>


<h:outputText value="#{msg['elicense.examinationform.address.copy']}" />
<p:selectBooleanCheckbox value="#{examinationFormBean.copyAddress}" label="addresscopy" />
<p:spacer></p:spacer>

<h:outputText value="#{msg['elicense.examinationform.address.permanentline1']}" />
<p:inputText id="address1" value="#{personalBean.permanentAddressLine1}" label="Permanent Address Line1" />

コードを更新しました。p:ajax を使用してチェック ボックスをオンにしたときはいつでも、presentAddressLine1 の値を PermanentAddressLine1 にコピーする必要があります。私を助けてください

4

1 に答える 1

1

p:selectBooleanCheckBoxコンポーネントがクリックされたときに Ajax リクエストを送信するだけです。ここに基本的なSSCCEがあります:

@ManagedBean
@ViewScoped
public class Bean implements Serializable {

    private String address1;
    private String address2;
    private boolean copyAdress;

    public String getAddress1() {
        return address1;
    }

    public String getAddress2() {
        return address2;
    }

    public boolean isCopyAdress() {
        return copyAdress;
    }

    public void listener() {
        if (copyAdress) {
            address2 = address1;
        } else {
            address2 = "";
        }
    }

    public void setAddress1(String address1) {
        this.address1 = address1;
    }

    public void setAddress2(String address2) {
        this.address2 = address2;
    }

    public void setCopyAdress(boolean copyAdress) {
        this.copyAdress = copyAdress;
    }

}
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:p="http://primefaces.org/ui">
<h:head />
<h:body>
    <h:form>
        <p:inputText value="#{bean.address1}" />
        <p:inputText id="add2" value="#{bean.address2}" />
        <p:selectBooleanCheckbox value="#{bean.copyAdress}">
            <p:ajax listener="#{bean.listener}" update="add2" process="@form" />
        </p:selectBooleanCheckbox>
    </h:form>
</h:body>
</html>

p:ajax、サーバー側で呼び出したいメソッドを持つリスナーを指定します。フォーム全体を処理するために送信します (これにより、リスナーが実行される前にアドレスの現在の値が設定されます)。リクエスト後に更新するコンポーネントは、必要な 2 番目のアドレスに添付された入力である必要があります。値をコピーします。

于 2014-07-30T12:59:14.273 に答える