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> 泛型的知识 -----这里的意思就是将String类型转换为Student类型
public class MyConverter implements Converter<String, Student>{

//重写父类方法
@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中注册

<mvc:annotation-driven conversion-service=“converterServer”></mvc:annotation-driven>
1
完整的就是









<mvc:annotation-driven conversion-service=“converterServer”></mvc:annotation-driven>
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”;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值