Spring:在控制器

时间:2016-04-18 06:02:03

标签: java xml spring spring-mvc

我在spring配置中使用纯xml。我有applicationContext.xmlservletContext.xml。在applicationContext.xml中,我创建了dao和service bean,而在servletContext.xml中,我创建了引用applicationContext中的服务bean的控制器bean。然后在控制器类中,我有这个代码来初始化bean

private PersonService personService
public void setPersonService(PersonService personService){
 this.personService = personService;
}

当我在personService中调用方法时,我得到一个空指针异常。我猜服务bean是null。我做错了什么?

这是我的bean xml 的applicationContext.xml

<bean id="personDao" class="com.training.hibernate.dao.impl.PersonDaoImpl">
      <constructor-arg>
        <ref bean="sessionFactory"/>
      </constructor-arg>
    </bean>

    <bean id="personService" class="com.training.hibernate.services.impl.PersonServiceImpl">
      <constructor-arg>
        <ref bean="personDao"/>
      </constructor-arg>
    </bean>

servletContext.xml

<mvc:annotation-driven/>
   <mvc:resources mapping="/resources/**" location="/resources/"/>

   <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />

   <bean class="com.training.hibernate.controller.PersonController">
      <property name="personService" ref="personService"/>
   </bean>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

这是我的控制器

public class PersonController extends MultiActionController {

    private PersonService personService;

    public void setPersonService(PersonService PersonService){
        this.personService = personService;
    }

    public ModelAndView getAllPersons(HttpServletRequest request, HttpServletResponse response) throws Exception{
        List<PersonDto> personDtos = personService.getAllPersons();
        ModelAndView model = new ModelAndView("index");
        model.addObject("persons",personDtos);
        model.addObject("roles",personService.getRoles());
        return model;
    }

    public ModelAndView add(HttpServletRequest request, HttpServletResponse response) throws Exception{
        ModelAndView model = new ModelAndView("person");
        return model;
    }
}

的web.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <display-name>Spring Web Application</display-name>

  <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring/appServlet/applicationContext.xml</param-value>
  </context-param>

  <servlet>
      <servlet-name>app</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/spring/appServlet/servletContext.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
      <servlet-name>app</servlet-name>
      <url-pattern>*.htm</url-pattern>
  </servlet-mapping>
</web-app>

0 个答案:

没有答案