Inputtextarea没有显示文字

时间:2011-04-26 12:02:40

标签: java jsf-2

我似乎遇到了jsf组件inputText和inputTextarea的问题。它们没有显示我的后端所具有的价值。我100%确定后端有这些值,我甚至尝试使用outputLabel输出它,outputlabel显示outputTexts不想显示的值。

我的Jsf页面:

[...]
<h:form rendered="#{gvpController.logInBean.gvpView}">
    <fieldset>
        <h3>Wijzig een titel</h3>
        <label>
            <span>Titel:</span>
            <h:selectOneMenu value="#{faseController.selectedFase.parent_id}" valueChangeListener="#{faseController.prepareEditView}" onchange="submit()" immediate="true">
                <f:selectItems value="#{faseController.fasesAsSelectItems}" />
            </h:selectOneMenu><br />
        </label>
        <h:inputTextarea value="#{faseController.selectedFase.titel}" />
        <br />
        <ui:repeat value="#{faseController.selectedFase.subItems}" var="subfase">
            <h:inputTextarea value="#{subfase.titel}" />
        </ui:repeat>
    </fieldset>
</h:form>
[...]

奇怪的是,它只是第一个没有显示其值的outputTextarea。 ui:repeat中的outputTextarea显示正确的值。

感谢。

1 个答案:

答案 0 :(得分:2)

我找到了一个解决方案。我不确定它是好的还是可以用另一种方式完成,如果你知道,请告诉我,但这是我如何解决它:

我的JSF页面:

[...]
<h:form id="editform" rendered="#{gvpController.logInBean.gvpView}">
    <fieldset>
        <h3>Wijzig een titel</h3>
        <label>
            <span>Titel:</span>
            <h:selectOneMenu value="#{faseController.selectedFase.parent_id}" valueChangeListener="#{faseController.prepareEditView}" onchange="submit()" immediate="true">
                <f:selectItems value="#{faseController.fasesAsSelectItems}" />
            </h:selectOneMenu><br />
        </label>
        <h:inputTextarea id="textboxParent" value="#{faseController.selectedFase.titel}" />
        <br />
        <ui:repeat value="#{faseController.selectedFase.subItems}" var="subfase">
            <h:inputTextarea value="#{subfase.titel}" />
        </ui:repeat>
    </fieldset>
</h:form>
[...]

我在表单和正在执行的文本框中添加了id。然后我在#{faseController.prepareEditView}中添加了以下代码:

[...]
UIInput input = (UIInput) FacesContext.getCurrentInstance().getViewRoot().findComponent("editform:textBoxParent");
input.setValue(selectedFase.getTitel());
input.setSubmittedValue(null);
[...]

这迫使inputtextarea显示我想要的文本。