我希望我的项目使用多个控制器。我的问题是,如何从一个控制器导航到另一个控制器,如何为我的用户提供标准主页?这应该是一个单独的“homeController”吗?我不明白这应该如何运作。 “Spring in Action”一书中没有详细说明这一点。
由于
答案 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(.......){}
这通常是通过弹簧控制器实现通用着陆页的方式。