【发布时间】:2013-10-26 14:56:51
【问题描述】:
我的项目中有一个 selectCheckBoxMenu 的实现。我的 xhtml 文件中的部分代码是:-
<p:row >
<p:column style=" width: 497px; text-align: right;">
<h:outputText for="toMails" value="To : " />
</p:column>
<p:column style=" width: 497px; text-align: left;">
<p:selectCheckboxMenu id="toMails" value="#{schedule.selectedEmailIds}" label="Mail Recipients" filter="true"
filterText="Filter" filterMatchMode="startsWith" panelStyle="width:220px">
<f:selectItems value="#{schedule.users}" />
</p:selectCheckboxMenu>
</p:column>
</p:row>
我的 Bean 类有代码:-
private String[] selectedEmailIds;
private Map<String,String> users;
//Getters and Setters
//Value Loader Method
public void loadWorkFlowServices()
{
try
{
Map<String, String> tmpUsers = new HashMap<String, String>();
tmpUsers.put("Scarface", "Scarface");
tmpUsers.put("Goodfellas", "Goodfellas");
tmpUsers.put("Godfather", "Godfather");
tmpUsers.put("Carlito's Way", "Carlito's Way");
tmpUsers.put("Rang De Basanti", "Rang De Basanti");
tmpUsers.put("Despicable Me", "Despicable Me");
tmpUsers.put("The Dark Knight", "The Dark Knight");
setUsers(tmpUsers);
}
catch (Exception e)
{
LOGGER.error("Error while loading the workflow services.", e);
}
}
当我从下拉列表中选择任何值并提交时。我遇到了异常 -
Error occurred while doing security check on URL hit
java.lang.NullPointerException
at org.primefaces.component.selectcheckboxmenu.SelectCheckboxMenu.queueEvent(SelectCheckboxMenu.java:199)
at javax.faces.component.UIInput.validate(UIInput.java:976)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
at javax.faces.component.UIInput.processValidators(UIInput.java:698)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIForm.processValidators(UIForm.java:253)
我在网上找不到太多帮助。请建议我缺少什么。
【问题讨论】:
-
你在哪里调用
loadWorkFlowServices()方法?在构造函数中? -
这个方法在@PostConstruct 下,所以它在页面加载时被加载。
-
您将
Map<String,String>影响到String[],它们不应该具有相同的类型吗? -
@Omar,地图是键值对的组合。
selectedEmailIds是选定的密钥集合,所以在这种情况下它做得很好(至少这部分)。
标签: java jsf jsf-2 primefaces