1

ブラウザにデータを入力すると、Bean に変数パラメータが設定されるはずです。しかし、なぜか設定されていません。ある時点で機能しましたが、もう機能しませんでした。

XHMTL

<p:panel header="Previous Summary" toggleable="true"
                toggleSpeed="500"
                style="border: 1px solid white; background-color: #F0F8FF; text-align: left;">
                <ice:form>
                    <ice:inputRichText id="editor_prevsummary"
                        value="#{statusReport.prevSummaryStr}" width="1200" height="200"
                        rendered="#{statusReport.renderPrevSummTextIn}"
                        onchange="this.form.submit()"  />


                    <ice:outputText value="#{statusReport.prevSummaryStr}"
                        rendered="#{!statusReport.renderPrevSummTextIn}" escape="false"></ice:outputText>
                    <br />
                    <ice:commandButton action="#{statusReport.editPrevSummary()}"
                        value="Edit" partialSubmit="true" />
                    <ice:commandButton action="#{statusReport.updatePrevSumm()}"
                        partialSubmit="true" value="Update"  />
                </ice:form>
            </p:panel>

Bean の値

  public String getExecSummaryStr() {

        return execSummaryStr;
    }

    public void setExecSummaryStr(String execSummary) {

        this.execSummaryStr = execSummary;
    }

inputText などに変更しても、同じことがわかります。なぜそれが起こっているのか、問題の診断をどこから始めるべきなのかわかりません。

4

1 に答える 1

2

あなたの問題は、同じフォーム内の<ice:inputRichText>とに同じ変数を使用しているためです。<ice:outputText>フォームが送信されると、フレームワークは両方のコンポーネントの値を に設定し#{statusReport.prevSummaryStr}、サイトで奇妙な動作を引き起こします。

編集:

考えられる解決策は、フォームの外に移動し<ice:outputText>て、コマンド ボタンからレンダリングすることです。別の解決策として、javascript を使用してその値を更新することができます。次のようなことができます:

<ice:inputRichText id="editor_prevsummary"
    value="#{statusReport.prevSummaryStr}" width="1200" height="200"
    rendered="#{statusReport.renderPrevSummTextIn}"
    onchange="document.getElementById('divText').innerHTML = this.value"  />
<div id="divText">

</div>
于 2012-07-18T00:10:21.220 に答える