【发布时间】:2013-07-18 13:19:44
【问题描述】:
这是一个 JSF 1.1 表单
<h:form>
<h1>STEP 1 - Choose your channels</h1>
<h:selectManyCheckbox value="#{globalTVRegistration.selectedChannels}" layout="pageDirection">
<f:selectItems value="#{globalTVRegistration.availableChannels}" />
</h:selectManyCheckbox>
<h:commandButton value="Select Channels" action="packages" />
</h:form>
及其对应的支持bean
public class GlobalTVRegistration {
private int[] selectedChannels;
public int[] getSelectedChannels() {
return selectedChannels;
}
public void setSelectedChannels(int[] selectedItems) {
this.selectedChannels = selectedItems;
}
}
当我选择一个或多个复选框并单击命令按钮时,会再次刷新同一页面。表单提交不调用setSelectedChannels(int[] selectedItems)。
你能找出问题所在吗?
【问题讨论】:
-
JSF 1.1 有几个令人痛苦的错误。考虑升级到最新的 JSF 1.2。您可以从javaserverfaces.java.net 获得它。顺便说一句,在 getter 方法中执行业务逻辑是一个坏主意。将该代码移动到构造函数
public GlobalTVRegistration()并在 getter 中保留单行return availableChannels;。
标签: forms integer int setter jsf-1.2