Jsf 提交表单时为空值<;f:ajax>;在表格中包含
我有以下两个下拉列表。我希望在项目更改上下拉列表A来填充下拉列表B。这可以正常工作,但问题发生在提交下拉列表期间 down B为空,我得到一个空验证错误。我可能做错了什么Jsf 提交表单时为空值<;f:ajax>;在表格中包含,jsf,Jsf,我有以下两个下拉列表。我希望在项目更改上下拉列表A来填充下拉列表B。这可以正常工作,但问题发生在提交下拉列表期间 down B为空,我得到一个空验证错误。我可能做错了什么 <h:form id="set_up_form"> <p:messages id="infor" showDetail="false" closable="true"/> <p:panelGrid columns="2" id="panel_grid_id">
<h:form id="set_up_form">
<p:messages id="infor" showDetail="false" closable="true"/>
<p:panelGrid columns="2" id="panel_grid_id">
<h:outputLabel value="Select Group A"/>
<p:selectOneMenu styleClass="font" id="group_list" value="#{myBean.group_A_id}" required="true" requiredMessage="Group Not Selected">
<f:selectItem itemLabel="--SELECT REVENUE GROUP--" itemValue="#{null}"/>
<f:selectItems value="#{myBean.groupA}"/>
<f:ajax render="sub_group_list"/> when I remove this tag and hand code group_A_id in getGroupB() form is submitted successfully
</p:selectOneMenu>
<h:outputLabel value="Select SubGroup"/>
<p:selectOneMenu styleClass="font" id="sub_group_list" value="#{myBean.group_B_id}" >
<f:selectItem itemLabel="--SELECT Group B--" itemValue="#{null}"/>
<f:selectItems value="#{myBean.groupB}"/>
</p:selectOneMenu>
<p:commandButton update="set_up_form" icon="ui-icon-plus" id="btnregister" value="Configure Revenue" action="#{mybean.savevalues}"/>
</p:panelGrid>
</h:form>
当我删除此标记并手动编码组时,getGroupB()表单中的组id已成功提交
这是我的托管Bean
public class MyBean {
private long group_A_id;
private long group_B_id;
// getter and setter
public Map<String, String> getGroupA() {
Map<String, String> map = new LinkedHashMap();
List<GroupA> grp = DBDao.getGroupARecords();// all values need to be populated
for (GroupA g : grp) {
String groupdId = "" + g.getId();
String groupName = g.getName().toUpperCase();
map.put(groupName, groupdId);
}
return map;
}
public Map<String, String> getGroupB() {// values depends on group_id selected from group A dropdown
Map<String, String> map = new LinkedHashMap();
List<GroupB> grp = DBDao.getGroupARecords("select from TableB where group_A_id='" + group_A_id + "'");// all values need to be populated
for (GroupB g : grp) {
String groupdId = "" + g.getId();
String groupName = g.getName().toUpperCase();
map.put(groupName, groupdId);
}
return map;
}
public void saveConfigs() {
System.out.println("Successfully Processed" + group_A_id + ":" + group_B_id);
}
}
公共类MyBean{
私人长组id;
私人long group_B_id;
//接二连三
公共映射getGroupA(){
Map Map=newlinkedhashmap();
List grp=DBDao.getGroupARecords();//需要填充所有值
对于(g组:玻璃钢){
字符串groupdId=“”+g.getId();
字符串groupName=g.getName().toUpperCase();
map.put(groupName,groupdId);
}
返回图;
}
公共映射getGroupB(){//值取决于从组A下拉列表中选择的组id
Map Map=newlinkedhashmap();
List grp=DBDao.getGroupARecords(“从表B中选择,其中组\u A\u id='“+组\u A\u id+””);//需要填充所有值
对于(B组g:grp){
字符串groupdId=“”+g.getId();
字符串groupName=g.getName().toUpperCase();
map.put(groupName,groupdId);
}
返回图;
}
公共void saveConfigs(){
System.out.println(“已成功处理”+组A\U id+:“+组B\U id”);
}
}
@Kukeltje已完成格式化。是否尝试过p:ajax
?或者添加一个显式事件?你的版本信息是什么?啊。。。我错过了文本中的“validation”错误,并假设在bean中有空值。。。这就是你从几乎相同的标题和介绍中得到的,标题是“错误的”…这里所掩盖的是“F****ck”@Kukeltje@Tiny他也在问同样的问题,而不是帮助我