SpringMVCのコントローラーは、ユーザーリクエストを処理するために使用されます。コントローラーは、Struts1のアクションと同等です。それらの実装メカニズムと運用原則は似ています。
コントローラーはインターフェイスであり、一般にAbstrcatControllerを直接継承し、HandlereQuestinternalメソッドを実装します。 HandlereQuestinternalメソッドは、Struts1の実行方法と同等です
Import org.springframework.web.servlet.modelandview; Import org.springframework.web.servlet.mvc.abstractController; Public Class CatControllerはAbstractControllerを拡張します{Private Icatservice CatService; HandLeRequestInternal(httpservletrequestRequest、httpservletResponse応答)スロー{文字列アクション= request.getParameter( "action"); if( "list" .equals(action)){return this.list(request、response);}}}プロテクタクリングレスブレスリスト例外{list <cat> catlist = catservice.listcat(); request.setattribute( "catlist"、catlist); return new ModelandView( "cat/listcat");}}}SpringMVCには組み込みのデータカプセル化がありません。開発者はデータ変換コード自体をカプセル化できます
SpringMVCは、ビューレイヤーの処理においてユニークです。 HandLeRequestInternalは、JSPオブジェクトのカプセル化と見なすことができるModelandViewオブジェクトを返します。 Modelandiviewは、JSPページへのパスを直接受け入れます。たとえば、パラメーター「CAT/LISTCAT」はJSPパスの一部にすぎません。実際の完全なパスは「web-inf/jsp/cat/catlist.jsp」です。パスの前後の部品は、構成ファイルで構成されています。
JSP Pathsのセットアップに加えて、ModelAndViewは、NewModelandview( "Cat/ListCat"、 "Cat、"、cat)など、リクエストに事前にリクエストにすることなく、モデルオブジェクトをビューレイヤーに直接渡すこともできます。複数のパラメーターが渡された場合、次のようなマップを使用できます
マップマップ= newHashmap(); map.put( "cat"、cat); map.put( "catlist"、catlist); new ModelandView( "cat/listcat"、map)を返します。
一般に、Spring-action.xmlなどの独立したXMLファイルを使用して、Web関連コンポーネントを特異的に構成します。
<?xml version = "1.0" encoding = "utf-8"?> <!dctypebeans public " - // spring // dtd bean // en" "" http://www.springframework.org/dtd/spring-beans.dtd "> <beans> <beans = <beans = < <value>/web-inf/jsp/</value> <! - jsp prefix-> </property> <property name = "suffix"> <value> .jsp </value> <! - jsp suffix-> </property> <! - 構成URLマッピング - > <bean id = "urlhandlermapping"> <プロパティ"cat.mvc" - > <prop key = "cat.mvc"> catcontroller </prop> <props> </property> </bean> <bean id = "catcontroller"> <property name = "catservice" ref = "catservice"> </property> </bean> </beans> web.xml configuration <contration <contration <contration < <param-name> contextconfiglocation </param-name> <param-value> /web-inf/classes/applicatecontext.xml、/web-inf/classes/spring-action.xml </param-value> </context-param> <リスナー> <! org.springframework.web.context.contextloaderlistener </ristener-class> </ristener> <servlet> <! - springディストリビューター - > <servlet-name> spring </servlet-name> <servlet-class> org.springframework.weblet.dispatchererervlet </servlet </servlet <param-name> contextconfiglocation </param-name> <param-value> /web-inf/classes/spring-action.xml </param-value> </init-on-startup> 1 </load-on-startup> < <url>*。mvc</url> </servlet-mapping>
コントローラーが複数のビジネスロジックを処理したい場合は、MultiactionControllerを使用できます。これは、Struts 1でのディスパッチャの派遣に相当します。特定のパラメーターに従って異なる方法に異なる要求を配布できます。
inrg.springframework.web.servlet.mvc.multiaction.multiactioncontroller; public classcontroller; extends abstractcontroller {private icatservice catservice; // setter and getter and getter modelandview add(httpservletRrequestRequest、 ModelandView( "cat/addcat");} Modelandviewリスト(httpservletrequestRequest、httpservletresponse Response)をスローする{list <catlist = catservice.listcat(); request.setattribute( "catlist"、catlist);spring-action.xmlに設定します
<bean id = "paramethodresolver"> <プロパティ名= "paramname"> <value> action </value> <! - 配布パラメーターを構成 - > </プロパティ> <プロパティ名= "defaultmethodname"> <値> <! - デフォルト実行方法を構成 - > </bean> <bean> <bean key = "cat.mvc"> catcontroller </prop> <! - 「cat.mvc」へのアクセスは、処理のためにcatcontrollerに引き渡されます - > <prop key = "catmulti.mvc"> catmulticontroller </prop> <! - "catmulti.mvc"にアクセスするとき、</propsultullerに留めます</bean> <bean id = "catcontroller"> <プロパティ名= "catservice" ref = "catservice"> </property> </bean> <bean id = "catmulticontroller"> <property name = "catservice" ref = "catservice"> </property> </bean> </bean>
要約します
上記は、春のMVCモジュールコードのすべての詳細な説明です。すべての人に役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。