controller配置总结
使用注解
1.web.xml配置
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:mvc.xml</param-value>
</init-param>
2.Controller修改
类声明前加@Controller
相应方法前加@RequestMapping("/请求名")
3.spring配置文件修改
<!-- 扫描该包下的注解-->
<context:component-scan base-package="包名"/>
使用nameurlhandlermapping和handleradapter
1.配置好handleradapter时,bean的name可以加.do也可以不加,没有配置时必须加上.do才能使用。
使用simpleurlhandlermapping
<bean class="simpleurlhandlermapping">
<property name="mappings">
<props>
<prop key="/hello.do">hello</prop>
</props>
</property>
</bean>
跳转结果方式
1.设置ModelAndView对象,根据View名称和视图解析器跳转到指定页面:视图解析器前缀+viewname+视图解析器后缀
2.通过servletAPI对象来实现,不需要视图解析器的配置。
a.response.getwriter().println
b.response.sendredirect
c.request.setattribute;request.getrequestdispatcher.forward;
3.通过springmvc实现转发和重定向(没有视图解析器)
a.public String hello(){
return "index.jsp";
}
b.public String hello(){
return "forward:index.jsp";
}
c.public String hello(){
return "redirect:index.jsp";
}
4.通过springmvc实现转发和重定向(有视图解析器)
a.转发
return"hello";会用到视图解析器
b.重定向
return“redirect:hello.do";不会用到视图解析器
将数据显示到UI层
1.通过ModelAndView--需要视图解析器
ModelAndView mv=new ModelAndView();
mv.addObject("msg","hello springmvc");
mv.setViewName("hello");
return mv;
2.通过ModelMap来实现--不需要视图解析器
ModelMap需要作为处理方法的参数
public String hello(String name,ModelMap model){
model.addAttribute("name",name);
return "index.jsp";
}