我试图找出以下问题。我有一个简单的富人:选择
<rich:select listWidth="310" id="userSelect" value="#{departmentBacking.selectedUserId}"
disabled="#{departmentBacking.unassignCheckbox}"enableManualInput="true" defaultLabel="#{not departmentBacking.unassignCheckbox ? 'start typing a surname...' : 'Uncheck unassign departments first'}">
<f:selectItems value="#{departmentBacking.userList}" var="user" itemValue="#{user.id}" itemLabel="#{user.surname} #{user.name} - #{user.email}" />
</rich:select>
它选择一个人,后来被设置为某些部门的领导。效果很好。但是,如果我只需要取消分配部门而不选择新部门,就会开始出现问题。如果选择了 unnassignCeckbox,我根本不想使用这个值。但是,我无法让 jsf 引擎进行回发,因为我总是收到验证错误。
MyForm:userSelect: Validation Error: Value is not valid
我认为这是因为 #{user.id} 的默认值为 0,并且在 userList 中找不到具有此 id 的用户。bean 是视图范围的。有没有办法以某种方式跳过验证或排除富人:从提交表单中选择?