1. 基本數據類型,
類型定義為包裝類型,否則報400錯誤
2. 對象類型,
~~~
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";
}
~~~
3. 數組類型
3.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}";
}
~~~
3.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) {
// TODO Auto-generated method stub
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return sdf.parse(source);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
~~~
日期類型轉換:配置轉換器
~~~
<!-- 自定義參數綁定 -->
<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>
~~~
日期類型轉換:測試日期轉換
~~~
@RequestMapping("/test8")
@ResponseBody
public String test8(Date birthday)
{
System.out.println(birthday);
return "{\"result\":true}";
}
~~~
5. 配置過濾器,解決中文亂碼問題
~~~
<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
View(vo) -> Controller(vo) -> Service(vo<->po) -> Mapper(po)