2012-08-06 70 views
0

我想讓我的項目使用多個控制器。我的問題是,如何從一個控制器導航到另一個控制器,以及我應該如何爲我的用戶設置標準主頁以降落?這應該是一個單獨的「homeController」?我不明白這應該如何工作。 「Spring in Action」一書沒有詳細解釋這一點。Spring MVC入口點

謝謝

+0

你有單個控制器工作?你使用註釋嗎?您應該提供更多信息以及目前爲止的內容,以便人們提供幫助。 – walnutmon 2012-08-06 14:33:59

回答

1

您可以使用不同的控制器(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 
} 
0

您可以使用調度程序servlet委託給不同的控制器。

<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將自行決定路由請求。

0

如果您的網站需要像login.jsp這樣的公共登錄頁面,您可以按照以下方式進行操作。 按如下方式在web.xml中配置您的調度程序servlet。

<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> 

然後在那裏你辦理應該包含這樣CONFIGS所有users.It的登錄請求,你應該有一個調度員打電話的servelt公共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" /> 

,然後在那裏的index.jsp Web應用程序的常見降落的地方,放一個jsp着打上面調度的servelt如下。

<jsp:forward page="/pub/login" /> 

注意:在您的控制器中,您需要在get方法中具有/登錄映射,如下所示。

@RequestMapping(方法= {GET,HEAD},值= 「/登錄」) 公共字符串loginHandler(.......){}

這是如何實現正常的共同目標網頁通過彈簧控制器。

1

在servlet的context.xml的檢查

<context:component-scan base-package="com.domain.package.controller" /> 

並使用

@Controller 

在課堂上你想成爲控制器。