顾名思义,这个映射器就是将一个bean的name作为一个url来进行页面跳转的一种映射。所以首先我们需要一个类,这个类用以实现页面的创建或者跳转。于是我们创建了:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class UserHandler implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView();
mav.setViewName("Success.jsp");
return mav;
}
}
这里我所使用的是执行跳转,所以我们要创建一个Success.jsp页面,随便写一个:
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
至于适配器和解析器这里不加赘述。然后就是核心了,我们之创建了Handler类,现在需要为其配置一个bean用以对其进行匹配。故我们在SpringMVC.xml文件中配置一个bean:
<bean name="/welcome" class="com.javaweb.sample.controller.UserHandler"></bean>
其中"/welcome"即为我们所需要匹配的url,而它的class也就是我们的实现类了。
然后我们创建一个初始界面:
相对于前者,注解映射器很简单,它有两种配置方法:
1:我们在SpringMVC.xml中配置:
<bean class="org.springframework.web.serv.et.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
或者
2:我们在SpringMVC.xml中配置:
<mvc:annotation-driven></mvc:annotation-driven>
前者是完整写法,后者是简写模式,实际效果是一样的。不过仅仅只写这个是无法成功实现功能的,我们需要为两者都添加一个:
<context:component-scan base-package="com.javaweb.sample.controller"></context:component-scan>
这个前面两者的配置是为MVC添加了一个注解映射器功能,而这个配置则是告诉注解映射器它需要在什么地方找到这个使用注解的实现类,故而这个package便是我们使用注解类的包名。
然后我们创建这个实现类:
package com.javaweb.sample.controller;//这里就是上面我们所配置的包名了
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class UserController {
@RequestMapping("/Hello.do")
public ModelAndView Jump() {
ModelAndView mav=new ModelAndView();
mav.setViewName("Success.jsp");
return mav;
}
}
此时我们再创建一个界面:
因篇幅问题不能全部显示,请点此查看更多更全内容