2012-08-06 73 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 

在课堂上你想成为控制器。