1 通过注解来拦截请求进行跳转
<!--相当于你访问请求path这个路径 返回success的界面 会处理所有的请求来这边--> <mvc:view-controller path="xxx" view-name="success" />
<!--springMVC的基础配置,需要该注解来协调上述的问题--> <mvc:annotation-driven/>
2 指定跳转方式
@RequestMapping(value = "wec.html") public ModelAndView print(){ System.out.println("123"); /*redirect重定向 forward转发要写全路径 返回ModelAndView可以解决乱码*/ return new ModelAndView("redirect:/jsp/success.jsp").addObject("body","中文"); }
3 处理静态资源
<!--在springMVC-servlet.xml中配置<mvc:default-servlet-handler />后, 会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler, 它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求, 就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。也要加入<mvc:annotation-driven />--> <mvc:default-servlet-handler />
4 类型转换 实现Converter接口
一、实现转换类
public class StudentConverter implements Converter<String, Student> { @Override public Student convert(String s) { String[] split = s.split("-");//05-沈刚伟-20 Student student = new Student(); student.setStu_id(Integer.parseInt(split[0])); student.setStu_name(split[1]); student.setStu_age(Integer.parseInt(split[2])); return student; } }
二、配置xml
<!--第一步实现转换的类 实现Converter接口 纳入bean中--> <bean id="myConverter" class="com.xiaonuo.converter.StudentConverter"></bean> <!--第二步将转换器类配置到springMVC的bean中去--> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="myConverter" /><!--可以传入多个转换器--> </set> </property> </bean> <!--第三步注册到annotation-driven中去--> <mvc:annotation-driven conversion-service="conversionService"/>
5 数据格式化
注解配置
@DateTimeFormat(pattern = "yyyy-MM-dd") 日期
@NumberFormat(pattern = "##,#") 数字
配置xml
<!--日期格式转换--> <!--第一步配置bean 转换器可以直接用这里的--> <bean id="formattingConversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="myConverter" /><!--可以传入多个转换器--> </set> </property> </bean> <!--第二步加入到nnotation-driven中去-->
配置转化器 BindingResult获取错误信息
@RequestMapping(value = "myBirthday") public String myBirthday(Student student, BindingResult bindingResult){ System.out.println(student.getStu_id()); System.out.println(student.getStu_name()); System.out.println(student.getBirthday()); if(bindingResult.getErrorCount()>0){ for (FieldError fieldError : bindingResult.getFieldErrors()) { System.out.println(fieldError.getDefaultMessage()); } } return "success"; }