プロジェクトで複数のコントローラーを使用したい。私の質問は、あるコントローラーから別のコントローラーに移動するにはどうすればよいですか。また、ユーザーがアクセスできる標準のホームページを作成するにはどうすればよいですか。これは別の「homeController」である必要がありますか?これがどのように機能するのかわかりません。「SpringinAction」の本では、これを説明するのに十分な詳細が説明されていません。
ありがとう
プロジェクトで複数のコントローラーを使用したい。私の質問は、あるコントローラーから別のコントローラーに移動するにはどうすればよいですか。また、ユーザーがアクセスできる標準のホームページを作成するにはどうすればよいですか。これは別の「homeController」である必要がありますか?これがどのように機能するのかわかりません。「SpringinAction」の本では、これを説明するのに十分な詳細が説明されていません。
ありがとう
servlet-context.xmlでチェック
<context:component-scan base-package="com.domain.package.controller" />
そして使用する
@Controller
クラスでは、あなたはコントローラーになりたいです。
アノテーションを使用してさまざまなコントローラー(Javaクラス)を使用できます@Controller
。これは、コントローラーで定義されたメソッドに関連付けられたURLに応じて、次のようになります。
@Controller
public class HomeController {
@RequestMapping(value = "/home", method = RequestMethod.GET)
public ModelAndView home() {
//code to process for the /home url
}
// More code
}
ディスパッチャサーブレットを使用して、さまざまなコントローラに委任できます。
<servlet>
<servlet-name>your-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>your-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
@RequestMapping
これで、コントローラーのバインディングに応じて、DispatcherServlet
がリクエストをルーティングする場所を決定します。
また、githubの春のMVCショーケースも確認してください。https://github.com/SpringSource/spring-mvc-showcase
Webにlogin.jspのような一般的なランディングページが必要な場合は、次のように行うことができます。次のように、web.xmlでディスパッチャサーブレットを設定します。
<servlet>
<servlet-name>public</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>public</servlet-name>
<url-pattern>/pub/*</url-pattern>
</servlet-mapping>
次に、ディスパッチャのserveltがpublic-servelt.xmlを呼び出して、すべてのユーザーのログイン要求を処理する必要があります。このような構成が含まれている必要があります。
<context:component-scan base-package="com.mycompany.web.controller.secure" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/pub/"
p:suffix=".jsp" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"
p:synchronizeOnSession="true" />
次に、Webアプリの一般的なランディング場所であるindex.jspで、jspを前方に配置して、次のようにディスパッチャーサーブの上にヒットします。
<jsp:forward page="/pub/login" />
注:コントローラーでは、次のようにgetメソッドに/loginマッピングを含める必要があります。
@RequestMapping(method = {GET、HEAD}、value = "/ login")public String loginHandler(.......){}
これは、通常、スプリングコントローラーを介して一般的なランディングページを実現する方法です。