2

我是 Spring MVC 的初学者。所以我不明白控制流是从控制器类到 training-servlet.xml,反之亦然。contextConfigLocation 文件(training-servlet.xml)解释为:

<beans:bean id="userService" class="com.my.control.UserServiceImpl" />
<beans:bean name="/userRegistration.htm" class="com.my.control.HomeController">
    <beans:property name="validator">
        <beans:bean class="com.my.validations.HomeValidations" /> 
    </beans:property>
    <beans:property name="userService" ref="userService"></beans:property>
    <beans:property name="formView" value="userForm"></beans:property>
    <beans:property name="successView" value="userSuccess"></beans:property>
</beans:bean>
<beans:bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/jsp/" />
    <beans:property name="suffix" value=".jsp" />
</beans:bean>

我的 Controller 类扩展了 SimpleFormController 并且是:

public class HomeController extends SimpleFormController {    
    private UserService userService;
    public HomeController() {
        setCommandClass(User.class);
        setCommandName("user");
    }
    public void setUserService(UserService userService) {
        this.userService = userService;
    }
    protected ModelAndView onSubmit(Object command) throws Exception {
        System.out.println("Hai Inside");
        User user = (User) command;
        userService.add(user);
        return new ModelAndView("userSuccess","user",user);
    }    
}

请帮助我了解模型和控制器之间的流程。

4

1 回答 1

2

XML 仅在启动时使用。Spring 使用您的配置文件来创建其中指定的每个 bean 的实例,并连接其依赖项。这意味着一旦你在你的 web 容器中启动你的 webapp,控制器的 userService 字段将被应用程序上下文提供的 bean 填充。Spring MVC 进一步处理将 HttpServletRequest 转换为控制器 bean 中 onSubmit() 方法的方法调用。

所以实际上没有从控制器到 XML 文件的流,而是从一个 bean 到另一个。

于 2012-09-05T14:55:32.467 回答