Hey guys. I'm having trouble with my setter method called via the faces-config file. It seems the value its receiving is null. Here is some snippet code.
The faces-config code is as follows
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config xmlns="http://java.sun.com/JSF/Configuration">
<application>
<variable-resolver>
org.springframework.web.jsf.DelegatingVariableResolver
</variable-resolver>
<view-handler>com.icesoft.faces.facelets.D2DFaceletViewHandler</view-handler>
<message-bundle id="messages">messages</message-bundle>
</application>
<lifecycle>
<phase-listener>
com.base.messaging.listeners.JSFMessagePhaseListener
</phase-listener>
<phase-listener>
com.base.messaging.listeners.BusinessMessagePhaseListener
</phase-listener>
<phase-listener>
com.base.listeners.RequestRedirectPhaseListener
</phase-listener>
<phase-listener>
com.base.listeners.ProgressIndicatorPhaseListener
</phase-listener>
</lifecycle>
<managed-bean>
<managed-bean-name>projectHandler</managed-bean-name>
<managed-bean-class>com.somedirectory.ProjectHandler</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>projectService</property-name>
<value>#{projectService}</value>
</managed-property>
<managed-property>
<property-name>init</property-name>
<value>#{param.init}</value>
</managed-property>
</managed-bean>
Here is The Handler Code.
package com.appsub.handler;
import com.base.security.jee.ExtendedUser;
import com.base.security.jee.UserHelper;
import com.app.service.ProjectService;
import com.app.model.Project;
import java.util.List;
import java.util.*;
import javax.faces.event.ActionEvent;
public class ProjectHandler extends BasePffHandler{
private List<Project> projects = null;
private ProjectService projectService = null;
private boolean showPopup = false;
private boolean showSecondaryPopup = false;
/**
*
* @return a List of Projects which was populated
* by the setupProject() function call.
*/
public List<Project> getProjects(){
return projects;
}
/**
* Used to setup default upon page load
*
* @param init
* the init to set
*/
public void setInit(String init) {
if (init != null) {
this.init = new Boolean(init);
}
if (this.init) {
ExtendedUser user = (ExtendedUser) UserHelper.getUserOnThread();
user.resetActiveBusinessProcessDifferentiator();
String userId = "lid1"; //Test UserID
//String userId = user.getUserId().substring(5);
/*For testing purposes use setup LID*/
projects = projectService.getProjectsByUser(userId);
}
}
public void setProjectService(ProjectService projectService){
this.projectService = projectService;
}
public ProjectService getProjectService(){
return projectService;
}
public void setProjects(List<Project> project){
projects = project;
}
public void closePopup(ActionEvent ae) {
showPopup = false;
// reset the itemsLeft and itemsRight
}
public void closeSecondaryPopup(ActionEvent ae){
showSecondaryPopup = false;
}
public boolean isShowSecondaryPopup(){
return showSecondaryPopup;
}
public void selectTechnologies(ActionEvent ae){
showPopup = true; //displays the Select technologies popup
}
public boolean isShowPopup(){
return showPopup;
}
public void addTechnology(ActionEvent ae){
showSecondaryPopup = true;
}
}
The Problem is occuring in the setProjectService Method. The ProjectService Parameter being passed is null, so I'm then receiving a null Pointer exception in the setInit() function when trying to use the projectService Object. Anyways, I thought that by using the <managed-property> <property-name> and <value> in the faces-config, I would be able to create an object. I may be missing something completely here. I'm kinda working off of a reference implementation that I'm still trying to untangle. Thanks for any help guys.
Edited by: KingPia on Jun 28, 2010 2:05 PM