Spring MVC切入点

时间:2012-08-06 13:58:35

标签: spring-mvc

我希望我的项目使用多个控制器。我的问题是,如何从一个控制器导航到另一个控制器,如何为我的用户提供标准主页?这应该是一个单独的“homeController”吗?我不明白这应该如何运作。 “Spring in Action”一书中没有详细说明这一点。

由于

5 个答案:

答案 0 :(得分:1)

在servlet-context.xml中检查

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

并使用

@Controller

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

答案 1 :(得分:1)

您可以将不同的控制器(Java类)与@Controller注释一起使用,具体取决于您要执行的操作是与Controller中定义的方法关联的URL,例如:

@Controller
public class HomeController {

    @RequestMapping(value = "/home", method = RequestMethod.GET)
    public ModelAndView home() {
        //code to process for the /home url
    }
    // More code
}

答案 2 :(得分: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将决定路由请求的位置。

答案 3 :(得分:0)

另外请检查github上的spring mvc showcase。 https://github.com/SpringSource/spring-mvc-showcase

答案 4 :(得分: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>

然后你应该有一个调度程序服务器调用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" />

然后在你的index.jsp中,网络应用程序的常见登陆位置,将jsp向前推送到调度程序服务器上方,如下所示。

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

注意:在您的控制器中,您需要在get方法中进行/ login映射,如下所示。

@RequestMapping(method = {GET,HEAD},value =“/ login”)     public String loginHandler(.......){}

这通常是通过弹簧控制器实现通用着陆页的方式。