0
我在面板網格內有一個輸入文本區域。此面板網格僅在勾選複選框時呈現。我正在使用值更改偵聽器來偵聽複選框以呈現文本區域。這種渲染機制起作用,但問題是我無法檢索用戶在文本區域中輸入的值。它總是返回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>
不真的跟着隊友。我理解的原因,但不是代碼。所以我會有兩個#{formBean.renderURL}? – 2010-10-15 02:57:34
在'rendered'屬性中使用的一個不會被提交給服務器。 'h:inputHidden值'中的那個將會是。這樣JSF知道'renderURL'的原始值。否則,在給定問題的情況下,JSF將使用其*默認*值,這顯然是'false'。 – BalusC 2010-10-15 03:01:03