0

I want my project to use more than one controller. My question is, how do I navigate from one controller to another and what should I do about having a standard home page for my users to land on? Should this be a separate "homeController"? I don't understand how this should work. The "Spring in Action" book doesn't go into enough details to explain this.

Thanks

4

5 回答 5

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
}
于 2012-12-10T22:50:36.167 回答
1

在 servlet-context.xml 检查

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

并使用

@Controller

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

于 2012-10-11T17:40:33.907 回答
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>

然后,您应该有一个调度程序 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" />

然后在你的 index.jsp 中 web app 的常用登陆地方,将一个 jsp 向前打到 dispatcher servelt 上面,如下所示。

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

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

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

这就是通常如何通过 spring 控制器实现一个普通的登陆页面。

于 2012-08-08T06:26:29.920 回答
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将决定将请求路由到何处。

于 2012-08-06T14:24:03.040 回答
0

另请查看 github 上的 spring mvc 展示。https://github.com/SpringSource/spring-mvc-showcase

于 2012-08-06T14:26:11.270 回答