我似乎遇到了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显示正确的值。
感谢。
答案 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显示我想要的文本。