springMVC(五)

虽然springMVC中自带类型转换器,但是有的时候我们需要自己去定义类型转换器来解决特殊的事情,比如一个jsp页面中的字符串转为一个Student类
话不多说,上代码:
首先新建一个学生类Student,里面有三个属性id、name、age

package com.lin;

public class Student {
private Integer id;
private String name;
private Integer age;

//省略set和get方法

@Override
public String toString() {
	return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
}

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
然后就开始编写类型转换器

编写一个类MyConverter,此类需要继承Converter类

package com.lin;
//注意:是org.springframework.core.convert.converter包下的
import org.springframework.core.convert.converter.Converter;

//Converter 泛型的知识 -----这里的意思就是将String类型转换为Student类型
public class MyConverter implements Converter{

//重写父类方法
@Override
public Student convert(String arg0) {
	//接受的String类型的数据为id-name-age,对应着Student类中的参数,-为分割符
	String[] str = arg0.split("-");
	int id = Integer.parseInt(str[0]);
	String name = str[1];
	int age = Integer.parseInt(str[2]);
	Student stu = new Student();
	stu.setId(id);
	stu.setName(name);
	stu.setAge(age);
	return stu;
}

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
在springMVC配置页面中配置
1、将编写好的MyConverter类添加到springloc容器


1
2、将MyConverter再添加到ConversionServiceFactoryBean工厂中(注意:converters字段是个set集合,需要spring知识)

1 2 3 4 5 6 7 3、在mvc:annotation-driven中注册


1
完整的就是










1
2
3
4
5
6
7
8
9

编写好转换器后就可以开始测试了

新建一个one.jsp文件

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

Insert title here 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 定义一个@RequestMapping(“mv12”)注释的方法(这个是springMVC基础的东西 就不说了 应该都懂)

@RequestMapping(“mv12”)
public String mv12(@RequestParam(“person”) Student stu) {
System.out.println(stu);
//这里返回的页面不管它 我们直接输出上面的那个对象就可以了
return “ok”;
}

你可能感兴趣的:(javaEE)