Inputtextarea не показывает текст - PullRequest
1 голос
/ 26 апреля 2011

Кажется, у меня проблема с компонентами jsf inputText и inputTextarea.Они не показывают ценность, которую держит мой бэкэнд.Я на 100% уверен, что у бэкэнда есть эти значения, и я даже попытался вывести его с помощью 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, который не показывает свое значение.OutputTextarea внутри пользовательского интерфейса: повтор показывает правильные значения.

Спасибо.

1 Ответ

2 голосов
/ 27 апреля 2011

Я нашел решение. Я не уверен, что это хороший вариант или это можно сделать другим способом, если вы знаете, пожалуйста, дайте мне знать, но вот как я это исправил:

Моя страница 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>
[...]

Я добавил идентификаторы в форму и текстовое поле, которое показывало. Затем я добавил следующий фрагмент кода в # {faseController.prepareEditView}:

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

Это заставило inputtextarea отображать нужный мне текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...