(一)基本数据类型
类型定义为包装类型,否则报400错误
对象类型
public class Userinfo {
private String username;
private String password;
private Integer age;
private String sex;
private String education;
private String birthday;
}
<form action="register" method="post">
<input type="text" name="username"/>
<input type="password" name="password"/>
<input type="text" name="age"/>
<input type="date" name="birthday"/>
<input type="radio" name="sex" value="M"/> 男
<input type="radio" name="sex" value="F"/> 女
<select name="education">
<option>博士</option>
<option>硕士</option>
<option>学士</option>
</select>
<input type="checkbox" name="hobby" value="1"/> 看书
<input type="checkbox" name="hobby" value="2"/> 编程
<button type="submit">注册</button>
</form>
@RequestMapping("/register")
public String reg(Userinfo u, String[] hobby)
{
System.out.println("username:"+u.getUsername());
System.out.println("password:"+u.getPassword());
System.out.println("age:"+u.getAge());
System.out.println("sex:"+u.getSex());
System.out.println("education:"+u.getEducation());
System.out.println("birthday:"+u.getBirthday());
for(int i=0; i<hobby.length;i++)
{
System.out.println(hobby[i]);
}
return "redirect:/login.html";
}
(三)数组类型
(1) 表单提交
@RequestMapping("/test7")
@ResponseBody
//public MyResult test7(@RequestParam(value = "ids") String[] ids)
public String test7(String[] ids)
{
for(int i=0; i<ids.length;i++)
{
System.out.println(ids[i]);
}
return "{\"result\":true}";
}
(2) ajax提交
public String test5(@RequestParam(value = "ids[]") String[] ids)
{
for(int i=0; i<ids.length;i++)
{
System.out.println(ids[i]);
}
return "{\"result\":true}";
}
(4)日期类型转换:定义转换器(个人不建议用,理由见下面vo和po分离)
public class CustomDateConverter implements Converter<String,Date>{
@Override
public Date convert(String source) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return sdf.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
(5)日期类型转换:配置转换器
<!-- 自定义参数绑定 -->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<!-- 转换器 -->
<property name="converters">
<list>
<!-- 日期类型转换 -->
<bean class="com.ttc.ssm.controller.converter.CustomDateConverter"/>
</list>
</property>
</bean>
<mvc:annotation-driven conversion-service="conversionService">
</mvc:annotation-driven>
(6)日期类型转换:测试日期转换
@RequestMapping("/test8")
@ResponseBody
public String test8(Date birthday)
{
System.out.println(birthday);
return "{\"result\":true}";
}
(7)配置过滤器,解决中文乱码问题
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
vo和po分离: 页面显示的内容和数据库的内容和数据类型不一定一致,应该采用不同的对象。
dto(vo), data transfer object 数据传输对象,对应页面
bo(po),business object 业务对象,对应数据库
当使用了mybatis或者是hibernate这样的框架时,习惯使用以下说法:
vo: value object 值对象,对应页面
po: persistent object 持久化对象,对应数据库
vo: 对应页面:String birthday
po: 对应数据库: Date birthday
[success]View(vo) -> Controller(vo) -> Service(vo<->po) -> Mapper(po)
内容来源于网络,如有侵权,请联系作者删除!