SpringMVC——通过注解来拦截请求进行跳转 、指定跳转方式、处理静态资源 、类型转换、数据格式化(三)

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";
}

猜你喜欢

转载自blog.csdn.net/qq_40632760/article/details/89040665