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>

豆价值

  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>表单移出并从您的 commandButton 呈现。另一种解决方案可能是使用 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 回答