我在部署到Tomcat 8的Mojarra 2.2.4应用程序中使用了PrimeFaces 5.2 <p:wizard>
。当我没有在文本字段中输入输入时,它正常工作。但是当我向textfields输入一些值时,它会抛出以下异常。
Jun 07,2015 6:59:33 PM com.sun.faces.context.PartialViewContextImpl processPartial 信息:java.lang.NullPointerException 显示java.lang.NullPointerException
仅当我输入文本字段并单击下一个按钮时才会抛出此异常。除了下一个按钮正常工作。
以下是观点:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
template="/templates/template.xhtml">
<ui:define name="metadata">
</ui:define>
<ui:define name="content">
<h:form>
<p:growl autoUpdate="true" />
<p:wizard flowListener="#{employeePersonalDetails.onFlowProcess}">
<p:tab id="personaldetailstab" title="Personal details"
titleStyle="font-size:16px;">
<p:panel>
<h:panelGrid columns="2" cellspacing="5">
<p:outputLabel for="employeecode" value="Employee code : " />
<p:column>
<p:inputText id="employeecode" maxlength="100" size="7"
autocomplete="off"
value="# {employeePersonalDetails.employee.employeeCode}" />
</p:column>
<p:outputLabel for="fullname" value="Full name : " />
<p:column>
<p:inputText id="fullname" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employee.fullName}" />
</p:column>
<p:outputLabel for="firstname" value="First name : " />
<p:column>
<p:inputText id="firstname" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employee.firstName}" />
</p:column>
<p:outputLabel for="middlename" value="Middle name : " />
<p:column>
<p:inputText id="middlename" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employee.middleName}" />
</p:column>
<p:outputLabel for="lastname" value="Last name : " />
<p:column>
<p:inputText id="lastname" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employee.lastName}" />
</p:column>
<p:outputLabel for="religion" value="Religion : " />
<p:column>
<p:inputText id="religion" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employee.religion}" />
</p:column>
<p:outputLabel for="nicno" value="NIC no : " />
<p:column>
<p:inputText id="nicno" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employee.nicNo}" />
</p:column>
<p:outputLabel for="dateofbirth" value="Date of Birth :" />
<p:column>
<p:calendar id="dateofbirth"
value="#{employeePersonalDetails.employee.empDateOfBirth}"
maxlength="100" size="25" autocomplete="off">
<p:ajax event="dateSelect"
listener="#{employeePersonalDetails.onDateSelect}"
update="dateofbirthmsgs" />
</p:calendar>
<p:growl id="dateofbirthmsgs" showDetail="true" />
</p:column>
<p:outputLabel for="gender" value="Gender : " />
<p:column>
<p:inputText id="gender" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employee.gender}" />
</p:column>
<p:outputLabel for="natinality" value="Natinality : " />
<p:column>
<p:inputText id="natinality" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employee.natinality}" />
</p:column>
<p:outputLabel value="Upload your Image here : " />
<p:column>
<p:fileUpload id="uploademployeeimage"
fileUploadListener="#{fileUploadController.handleFileUpload}"
mode="advanced" update="messages" label="Choose a file"
sizeLimit="1048576" allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
invalidSizeMessage="The maximum file size allowed is 1 Megabyte !"
invalidFileMessage="You are allowed to upload only images !" />
<p:growl id="messages" showDetail="true" sticky="true" />
</p:column>
</h:panelGrid>
</p:panel>
</p:tab>
<p:tab id="contactdetailstab" title="Contact details"
titleStyle="font-size:16px;">
<p:panel>
<h:panelGrid columns="2" cellspacing="5">
<p:outputLabel for="primaryaddressone" value="Primary Address : " />
<p:column>
<p:inputText id="primaryaddressone" maxlength="100" size="25"
placeholder="Address 1" autocomplete="off"
value="#{employeePersonalDetails.employeeContactDetails.addressOne}" />
</p:column>
<p:column></p:column>
<p:column>
<p:inputText id="primaryaddresstwo" maxlength="100" size="25"
placeholder="Address 2" autocomplete="off"
value="#{employeePersonalDetails.employeeContactDetails.addressTwo}" />
</p:column>
<p:outputLabel for="city" value="City : " />
<p:column>
<p:inputText id="city" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeeContactDetails.city}" />
</p:column>
<p:outputLabel for="zip" value="Zip : " />
<p:column>
<p:inputText id="zip" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeeContactDetails.zip}" />
</p:column>
<p:outputLabel for="country" value="Country : " />
<p:column>
<p:inputText id="country" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeeContactDetails.country}" />
</p:column>
<p:outputLabel for="emailaddress" value="Email Address : " />
<p:column>
<p:inputText id="emailaddress" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeeContactDetails.email}" />
</p:column>
<p:outputLabel for="primarytelephoneno"
value="Primary Telephone No : " />
<p:column>
<p:inputText id="primarytelephoneno" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeeContactDetails.primaryTelNo}" />
</p:column>
<p:outputLabel for="personalmobileno"
value="Personal Mobile No : " />
<p:column>
<p:inputText id="personalmobileno" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeeContactDetails.personalMobileNo}" />
</p:column>
<p:outputLabel for="officialmobileno"
value="Official Mobile No : " />
<p:column>
<p:inputText id="officialmobileno" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeeContactDetails.officialMobileNo}" />
</p:column>
</h:panelGrid>
</p:panel>
</p:tab>
<p:tab id="employeementdetailstab" title="Employeement details"
titleStyle="font-size:16px;">
<p:panel>
<h:panelGrid columns="2" cellspacing="5">
<p:outputLabel for="jobtitle" value="Job Title : " />
<p:column>
<p:inputText id="jobtitle" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeementDetails.jobTitle}" />
</p:column>
<p:outputLabel for="departmentcode" value="Department code : " />
<p:selectOneMenu id="departmentcode" value="#{departmentDetails.department.departmentCode}"
style="width:170px" >
<f:selectItem itemLabel="Select Department" itemValue="" noSelectionOption="true" />
<f:selectItems value="#{departmentDetails.departmentCodes}" />
</p:selectOneMenu>
<p:outputLabel for="stafftype" value="Staff Type : " />
<p:column>
<p:inputText id="stafftype" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeementDetails.staffType}" />
</p:column>
<p:outputLabel for="activateddate" value="Activated Date :" />
<p:column>
<p:calendar id="activateddate"
value="#{employeePersonalDetails.employeementDetails.activatedDate}"
maxlength="100" size="25" autocomplete="off">
<p:ajax event="dateSelect"
listener="#{employeePersonalDetails.onDateSelect}"
update="msgs" />
</p:calendar>
<p:growl id="msgs" showDetail="true" />
</p:column>
<p:outputLabel for="active" value="Active :" />
<p:column>
<h:selectBooleanCheckbox id="active"
value="#{employeePersonalDetails.employeementDetails.employeeActiveStatus}" />
</p:column>
</h:panelGrid>
</p:panel>
</p:tab>
<p:tab id="otherinformationtab" title="Other information"
titleStyle="font-size:16px;">
<p:panel>
<h:panelGrid columns="2" cellspacing="5">
<p:outputLabel for="salaryamount" value="Salary Amount : " />
<p:column>
<p:inputText id="salaryamount" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeeOtherDetails.salaryAmount}" />
</p:column>
<p:outputLabel for="newepfno" value="New EPF No : " />
<p:column>
<p:inputText id="newepfno" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeeOtherDetails.epfNo}" />
</p:column>
<p:outputLabel for="newetfno" value="New ETF No : " />
<p:column>
<p:inputText id="newetfno" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeeOtherDetails.etfNo}" />
</p:column>
<p:outputLabel for="remarks" value="Remarks : " />
<p:column>
<p:inputTextarea id="remarks" maxlength="100" size="25"
autocomplete="off"
value="#{employeePersonalDetails.employeeOtherDetails.remarks}" />
</p:column>
<span style="display: block; text-align: right"> <p:commandButton
value="Save"
action="#{employeePersonalDetails.saveEmployeeDetails}" />
</span>
</h:panelGrid>
</p:panel>
</p:tab>
</p:wizard>
</h:form>
</ui:define>
</ui:composition>
这是支持bean:
package com.wisdom.empmngsys.controller;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.FlowEvent;
import org.primefaces.event.SelectEvent;
import com.wisdom.empmngsys.model.Employee;
import com.wisdom.empmngsys.model.EmployeeContactDetails;
import com.wisdom.empmngsys.model.EmployeeOtherDetails;
import com.wisdom.empmngsys.model.EmployeementDetails;
@ManagedBean(name="employeePersonalDetails")
@SessionScoped
public class EmployeePersonalDetails implements Serializable {
/**
*
*/
private static final long serialVersionUID = 323609630411955966L;
private Employee employee = new Employee();
private EmployeeContactDetails employeeContactDetails = new EmployeeContactDetails();
private EmployeementDetails employeementDetails = new EmployeementDetails();
private EmployeeOtherDetails employeeOtherDetails = new EmployeeOtherDetails();
public Employee getEmployee() {
return employee;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
public EmployeeContactDetails getEmployeeContactDetails() {
return employeeContactDetails;
}
public void setEmployeeContactDetails(
EmployeeContactDetails employeeContactDetails) {
this.employeeContactDetails = employeeContactDetails;
}
public EmployeementDetails getEmployeementDetails() {
return employeementDetails;
}
public void setEmployeementDetails(EmployeementDetails employeementDetails) {
this.employeementDetails = employeementDetails;
}
public EmployeeOtherDetails getEmployeeOtherDetails() {
return employeeOtherDetails;
}
public void setEmployeeOtherDetails(EmployeeOtherDetails employeeOtherDetails) {
this.employeeOtherDetails = employeeOtherDetails;
}
public void onDateSelect(SelectEvent event) {
FacesContext facesContext = FacesContext.getCurrentInstance();
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Date Selected", format.format(event.getObject())));
}
public String onFlowProcess(FlowEvent event) {
return event.getNewStep();
}
public void saveEmployeeDetails(){
System.out.println("Inside the saveEmployeeDetails...");
employee.saveEmployee(employee);
System.out.println("DONE the saveEmployeeDetails...");
employeeContactDetails.saveEmployeeContactDetail(employeeContactDetails);
System.out.println("DONE the saveEmployeeContactDetail...");
employeementDetails.saveEmployeementDetails(employeementDetails);
System.out.println("DONE the saveEmployeementDetails...");
employeeOtherDetails.saveEmployeeOtherDetails(employeeOtherDetails);
System.out.println("DONE the saveEmployeeOtherDetails...");
System.out.println("DONE SAVE...");
}
}
这是模型:
package com.wisdom.empmngsys.model;
import java.io.Serializable;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import com.wisdom.empmngsys.persistence.DBConnection;
public class Employee implements Serializable {
/**
*
*/
private static final long serialVersionUID = -908408323852847362L;
private Integer id;
private String employeeCode;
private String fullName;
private String firstName;
private String middleName;
private String lastName;
private String religion;
private String nicNo ;
private String empDateOfBirth;
private String gender;
private String natinality;
public Employee() {
super();
}
public Employee(Integer id, String employeeCode, String fullName,
String firstName, String middleName, String lastName,
String religion, String nicNo, String empDateOfBirth,
String gender, String natinality) {
super();
this.id = id;
this.employeeCode = employeeCode;
this.fullName = fullName;
this.firstName = firstName;
this.middleName = middleName;
this.lastName = lastName;
this.religion = religion;
this.nicNo = nicNo;
this.empDateOfBirth = empDateOfBirth;
this.gender = gender;
this.natinality = natinality;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getEmployeeCode() {
return employeeCode;
}
public void setEmployeeCode(String employeeCode) {
this.employeeCode = employeeCode;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getMiddleName() {
return middleName;
}
public void setMiddleName(String middleName) {
this.middleName = middleName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getReligion() {
return religion;
}
public void setReligion(String religion) {
this.religion = religion;
}
public String getNicNo() {
return nicNo;
}
public void setNicNo(String nicNo) {
this.nicNo = nicNo;
}
public String getEmpDateOfBirth() {
return empDateOfBirth;
}
public void setEmpDateOfBirth(String empDateOfBirth) {
this.empDateOfBirth = empDateOfBirth;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getNatinality() {
return natinality;
}
public void setNatinality(String natinality) {
this.natinality = natinality;
}
public void saveEmployee(Employee employee){
System.out.println("Inside the saveEmployee method...");
ResultSet resultSet;
Statement stmt;
id = employee.getId();
employeeCode = employee.getEmployeeCode();
fullName = employee.getFullName();
firstName = employee.getFirstName();
middleName = employee.getMiddleName();
lastName = employee.getLastName();
religion = employee.getReligion();
nicNo = employee.getNicNo();
empDateOfBirth = employee.getEmpDateOfBirth();
gender = employee.getGender();
natinality = employee.getNatinality();
Integer lastEmpId = null;
System.out.println(empDateOfBirth);
try{
System.out.println("Inside the try block saveEmployee method && before insert the employee details...");
stmt = DBConnection.getConnection().createStatement();
String sqlquerylastnumber = "SELECT emp_id FROM "+"wisdom"+".employee ORDER BY emp_id DESC LIMIT 1;";
/*
resultSet = stmt.executeQuery(sqlquerylastnumber);
while(resultSet.next()){
lastEmpId = resultSet.getInt(1);
}*/
String sqlquery = "SELECT * FROM "+"wisdom"+".insertemployeedetails('"+employeeCode+"','"+fullName+"',"
+ "'"+firstName+"','"+middleName+"','"+lastName+"', '"+religion+"', '"+nicNo+"', '"+empDateOfBirth+"',"
+ "'"+gender+"', '"+natinality+"' );";
stmt.executeQuery(sqlquery);
System.out.println("Employee details insert done inside the try block...");
}
catch (SQLException e) {
System.out.println("SQLException in Create statement time...." + e);
e.printStackTrace();
}
}
}
这是例外:
Jun 07, 2015 6:59:33 PM com.sun.faces.context.PartialViewContextImpl processPartial
INFO: java.lang.NullPointerException
java.lang.NullPointerException
at org.primefaces.component.wizard.Wizard.processDecodes(Wizard.java:179)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:550)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1729)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:399)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:263)
at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:927)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Jun 07, 2015 6:59:33 PM com.sun.faces.lifecycle.ApplyRequestValuesPhase execute
WARNING: java.lang.NullPointerException
javax.faces.FacesException: java.lang.NullPointerException
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:270)
at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:927)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at org.primefaces.component.wizard.Wizard.processDecodes(Wizard.java:179)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:550)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1729)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:399)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:263)
... 28 more
Jun 07, 2015 6:59:33 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
SEVERE: java.lang.NullPointerException
at org.primefaces.component.wizard.Wizard.processDecodes(Wizard.java:179)
这是如何引起的?如何解决?