1

SimpleFormControllerHibernateを使用してSpringMVC3.0.2を使用してJSPでアプリケーションを開発しています。すべて順調。Validatorサーバー側でフォームを検証するためにも使用しています。それも順調に進んでいます。

ここで、例としてAjaxを使用する必要があります。国がドロップダウン(<form:select><form:option></form:option></form:select>)から選択された場合、その国に対応する州は、州のドロップダウンのデータベースから入力される必要があります。

私はAjaxを使用してそのようなことを行ってきましたが、SpringMVCではまだ行っていません。私はGoogleに関する多くのチュートリアル/記事を読みSimpleFormControllerましたが、どれもAjaxを使用していませんでした。でAjaxを使用する方法についてのアイデアは1つも見つかりませんでしたSimpleFormController

アノテーション付きコントローラー(@Controller)を使用すると、アノテーションを使用してメソッドをマップできるため、作業が簡単になります@RequestMapping(ただし、まだ使用していませんが、使用できると思います)。

しかしSimpleFormController、を使用すると、SpringコントローラーでAjaxリクエストを処理する方法(どのメソッドをどのようにマップするか)について正確なアイデアがありません。でSimpleFormController、私は通常、、およびメソッドに関連付けられてonSubmit()showForm()ますreferenceData()

Ajaxリクエストをどのように行うことができるかSimpleFormController、どのメソッドをどのようにマッピングできるかについて、いくつかの考えを公開していただけますか?(完全なコードはもう必要ありません。非常に単純な例(可能な場合のみ)またはさらに、Ajaxとの使用SimpleFormControllerが説明されている特定のリンクで十分に勉強できます)。

4

2 に答える 2

6

ajaxリクエストを処理するために、いつでも別の@Controllerを使用できます。ビューにカスタムjspを設定できる場合は、ページでajaxリクエストを処理することを妨げるものは何もありません。選択ボックスのonchangeイベントを、作成した他のコントローラーを指すajax呼び出しにバインドするだけです。

SimpleFormControllerだけにバインドするという点では、これは不可能だと思いますが、フォームが使用する新しいRESTfulコントローラーを作成すると、Webサイトの他の部分でもこの新しいコントローラーを使用できるようになります。

于 2012-08-02T13:33:19.603 に答える
2

dardoの答えを補完するものとして、Spring MVC2とMVC3の両方のコントローラーを使用することは可能ですが、セットアップには少し注意が必要です。

SimpleFormController同じSpringコンテキストでとコントローラーの両方を使用するために@Controller、私は次の定義に使用しました。

<!-- ======== MVC Spring 3.x ======== -->

<!-- Scans within the base package of the application for @Components to configure as beans @Controller, @Service, @Configuration, etc. -->
<context:component-scan base-package="com.your.package" />

<!-- Enables the Spring MVC @Controller programming model -->
<!-- It's a shortcut equivalent to the (more complete) bean definition below (see bean AnnotationMethodHandlerAdapter).-->
<!--<mvc:annotation-driven />-->

<!-- This HandlerAdapter will register spring 3.x controllers (@Controller) into the DispatcherServlet -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <array>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="writeAcceptCharset" value="false"/>
            </bean>
            <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
        </array>
    </property>
</bean>

<!-- This HandlerMapping allows to map urls defined in @RequestMapping annotations to the corresponding controllers -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
</bean>

<!-- ======== MVC Spring 2.x ======== -->

<!-- This HandlerAdapter will register spring 2.x controllers (@Controller) into the DispatcherServlet -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />

<!-- Url mapper -->
<bean id="urlMapper" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="urlMap">
        <map>
            <entry key="/foo.do" value-ref="fooController" />
            <entry key="/bar.do" value-ref="barController" />

            ...
        </map>
    </property>
</bean>
于 2012-08-08T09:11:40.907 に答える