【发布时间】:2014-05-19 21:54:52
【问题描述】:
我有一个带有作业列表的第一个 dataTable,对于列表中的每个作业,我不想使用 triggersList 创建第二个 dataTable(在第一个内部)这是我的 jsf 页面:
<p:dataTable id="jobs" var="job" value="#{jobBean.jobList}" rowKey="job.key">
<f:facet name="header">
Jobs List
</f:facet>
<p:column headerText="Name">
#{job.key.name}
</p:column>
<p:column headerText="Group">
#{job.key.group}
</p:column>
<p:column headerText="Triggers">
<p:dataTable id="triggers" var="trigger" value="#{jobBean.triggerList}">
<p:column headerText="Start Time">
#{trigger.startTime}
</p:column>
</p:dataTable>
</p:column>
</p:dataTable>
所以对于每个作业变量我都不想有触发器列表,这是我的 managedBean:
public class JobBean implements Serializable {
@ManagedProperty(value = "#{job}")
private JobDetail job;
private List<Trigger> triggerList;
....
/**
* @param triggerList
* the triggerList to set
*/
public void setTriggerList(List<Trigger> triggerList) {
this.triggerList = triggerList;
}
/**
* @return the triggerList
*/
public List<Trigger> getTriggerList() {
this.get();
return triggerList;
}
private void get(){
FacesContext ctx = FacesContext.getCurrentInstance();
JobDetail jb = ctx.getApplication().evaluateExpressionGet(ctx, "# {job}", JobDetail.class);
this.triggerList = triggerListMap.get(jb.getKey());
}
/**
* @param job
* the job to set
*/
public void setJob(JobDetail job) {
this.job = job;
}
/**
* @return the job
*/
public JobDetail getJob() {
return job;
}
}
get() 方法返回空指针异常:
原因:java.lang.NullPointerException 在 tti.frameworkBI.web.JobBean.get(JobBean.java:129)
【问题讨论】:
-
你有一个
triggerListMap变量,它突然出现在你的 bean 中而没有事先声明。那显然不是你真正的豆子。请尝试发布经过测试的代码片段,并附上相关代码,并方便人们复制粘贴并尝试它们。请参阅SSCCE document。
标签: java jsf-2 primefaces managed-bean