Search...
FAQs
Subscribe
Pie
FAQs
Recent topics
Flagged topics
Hot topics
Best topics
Search...
Search within Spring
Search Coderanch
Advance search
Google search
Register / Login
Post Reply
Bookmark Topic
Watch Topic
New Topic
programming forums
Java
Mobile
Certification
Databases
Caching
Books
Engineering
Micro Controllers
OS
Languages
Paradigms
IDEs
Build Tools
Frameworks
Application Servers
Open Source
This Site
Careers
Other
Pie Elite
all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Campbell Ritchie
Jeanne Boyarsky
Ron McLeod
Liutauras Vilda
Paul Clapham
Sheriffs:
paul wheaton
Tim Cooke
Henry Wong
Saloon Keepers:
Stephan van Hulst
Tim Holloway
Carey Brown
Frits Walraven
Piet Souris
Bartenders:
Mike London
Forum:
Spring
Going from implements Controller to @Controller injection problem
karl czukoski
Greenhorn
Posts: 22
posted 9 years ago
Number of slices to send:
Optional 'thank-you' note:
Send
If I have
<bean id="employee" class="springapp.domain.Employee"> <property name="employeeName" value="George"></property> </bean> <bean id="employeeManager" class="springapp.service.SimpleEmployeeManager"> <property name="employee" ref="employee"></property> </bean> <bean name="/hello.htm" class="springapp.web.EmployeeController"> <property name="employeeManager" ref="employeeManager"></property> </bean>
and
public class EmployeeController implements Controller { private EmployeeManager employeeManager; public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { String modelObject = "model object"; Map<String, Object> myModel = new HashMap<String, Object>(); myModel.put("localStringModelObject", modelObject); employeeManager = this.employeeManager; employee = employeeManager.getEmployee(); System.out.println("employee " + employee); //prints employee Employee name: George myModel.put("employeeModelObject", employee); return new ModelAndView("hello", "modelName", myModel); } //dependency injection to member variable (employeeManager) public void setEmployeeManager(EmployeeManager employeeManager) { this.employeeManager = employeeManager; } }
the employee property gets set from employeeManager reference
however when I try to use @Controller
<bean id="employee" class="springapp.domain.Employee"> <property name="employeeName" value="George"></property> </bean> <bean id="employeeManager" class="springapp.service.SimpleEmployeeManager"> <property name="employee" ref="employee"></property> </bean> <context:component-scan base-package="springapp.web" /> <!-- <bean name="/hello.htm" class="springapp.web.EmployeeController"> <property name="employeeManager" ref="employeeManager"></property> </bean> -->
and
@Controller public class EmployeeController /*implements Controller*/ { private EmployeeManager employeeManager; @RequestMapping(value="hello.htm") public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { String modelObject = "model object"; Map<String, Object> myModel = new HashMap<String, Object>(); myModel.put("localStringModelObject", modelObject); employeeManager = this.employeeManager; employee = employeeManager.getEmployee(); System.out.println("employee " + employee); //prints employee null myModel.put("employeeModelObject", employee); return new ModelAndView("hello", "modelName", myModel); } //dependency injection to member variable (employeeManager) public void setEmployeeManager(EmployeeManager employeeManager) { this.employeeManager = employeeManager; } }
why doesn't the employee property still get set (instead a null pointer exception occurs)?
H Paul
Ranch Hand
Posts: 491
5
posted 9 years ago
Number of slices to send:
Optional 'thank-you' note:
Send
1. For @Controller
Would that imply ?
EmployeeController obj=new EmployeeController ();
There is no setEmployeeManager.
2. You need
@Autowired
private EmployeeManager employeeManager;
karl czukoski
Greenhorn
Posts: 22
posted 9 years ago
1
Number of slices to send:
Optional 'thank-you' note:
Send
Put @Autowired at method
@Autowired public void setEmployeeManager(EmployeeManager employeeManager) { this.employeeManager = employeeManager; }
and seems to be working good now.
If I understand correctly since employeeManager property
<!-- <bean name="/hello.htm" class="springapp.web.EmployeeController"> --> <!-- <property name="employeeManager" ref="employeeManager"></property> @Autowired setEmployeeManager method in EmployeeController --> <!-- </bean> -->
was removed from dispatcher
servlet
employeeManager needs to be autowired?
narendra bhattacharya
Ranch Hand
Posts: 66
posted 9 years ago
Number of slices to send:
Optional 'thank-you' note:
Send
@Autowired will inject the bean instance in the controller. hence removes Null Pointer Exception.
SCJP1.6,SCWCD1.5
reply
reply
Bookmark Topic
Watch Topic
New Topic
Boost this thread!
Similar Threads
could not able to set the property from the springapp-servlet.xml throws Failed to convert property
A question about standard action jsp:useBean
Transaction management in Spring
database connection Spring framework unresolved
Spring MVC : {beanName.property} not working
More...