无法保留我的输入文字

时间:2010-10-14 10:12:29

标签: java jsf

我在面板网格内有一个输入文本区域。仅在勾选复选框时才会呈现此面板网格。我正在使用值更改侦听器来侦听复选框以呈现文本区域。这种渲染机制有效,但问题是我无法检索用户在文本区域中输入的值。它总是返回null。任何帮助表示赞赏。

// if box is checked, input text area is rendered
public void showURL(ValueChangeEvent event) {
    FacesContext context = FacesContext.getCurrentInstance();
    boolean value = (Boolean) event.getNewValue();
    setRenderURL(value);
    context.renderResponse();
}

<h:panelGrid columns="2" >
<h:outputLabel value="Is position vacant?" />
<h:selectBooleanCheckbox valueChangeListener="#{formBean.showURL}"
                 onclick="submit()"
             immediate="true" />
</h:panelGrid>

<h:panelGrid columns="2" rendered="#{formBean.renderURL}" >
<h:panelGroup>
    <h:outputLabel value="Link: "/>
            // trouble here: getURL always returns null
    <h:inputText size="60" value="#{formBean.URL}" />
</h:panelGroup>
</h:panelGrid> 

1 个答案:

答案 0 :(得分:0)

添加

<h:inputHidden value="#{formBean.renderURL}" />

到相同的形式,以便在处理输入组件的请求期间保留所呈现的属性的条件。只要输入组件的rendered属性或其中一个父组件评估false,JSF就不会验证/转换/更新输入组件。