2

私はSpringMVCの初心者なので、制御の流れがコントローラークラスから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コンテナでWebアプリケーションを起動すると、コントローラーのuserServiceフィールドに、アプリケーションコンテキストによって提供されるBeanが入力されます。Spring MVCは、HttpServletRequestをコントローラーBeanのonSubmit()メソッドのメソッド呼び出しに変換する処理をもう少し進めます。

したがって、あるBeanから別のBeanへではなく、コントローラーからXMLファイルへのフローは実際にはありません。

于 2012-09-05T14:55:32.467 に答える