91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringMVC中參數綁定的作用是什么

發布時間:2021-05-27 18:14:27 來源:億速云 閱讀:212 作者:Leah 欄目:編程語言

SpringMVC中參數綁定的作用是什么?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

參數綁定的定義

所謂參數綁定,簡單來說就是客戶端發送請求,而請求中包含一些數據,那么這些數據怎么到達 Controller。從客戶端請求key/value數據(比如get請求中包含的數據),經過參數綁定,將key/value數據綁定到controller方法的形參上。springmvc中,接收頁面提交的數據是通過方法形參來接收。而不是在controller類定義成員變量接收。

SpringMVC中參數綁定的作用是什么

SpringMVC中默認支持的類型

SpringMVC中參數綁定的作用是什么

自定義參數類型進行綁定

對于有些參數類型,由于我們輸入的參數的類型與實體類中的參數類型不同,因此導致傳值不能成功,此時,需要進行參數類型綁定。下面以Date類型為例介紹怎樣進行自定義參數類型綁定。

User.java

import java.util.Date;
public class User {
	private Integer id;
	private String username;
	private String sex;
	private Date birthday;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username == null ? null : username.trim();
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex == null ? null : sex.trim();
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
}

JSP頁面:注意輸入框的 name 屬性值和上面 POJO 實體類的屬性保持一致即可映射成功。

<form action="pojo" method="post">
    用戶id:<input type="text" name="id" value="2"></br>
    用戶名:<input type="text" name="username" value="Marry"></br>
    性別:<input type="text" name="sex" value="女"></br>
    出生日期:<input type="text" name="birthday" value="2017-08-25"></br>
    <input type="submit" value="提交">
  </form>

因為我們輸入的birthday是String類型,但是實體類中的birthday是Date類型,此時,就不會綁定成功,請求相應的controller會出現如下錯誤:

SpringMVC中參數綁定的作用是什么

因此我們需要進行參數綁定。

參數綁定主要包括兩步:

1. 新建一個類實現Converter接口

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
import org.springframework.core.convert.converter.Converter;
 
//需要實現Converter接口,這里是將String類型轉換成Date類型
public class DateConverter implements Converter<String, Date> {
 
  @Override
  public Date convert(String source) {
    //實現將字符串轉成日期類型(格式是yyyy-MM-dd HH:mm:ss)
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
      return dateFormat.parse(source);
    } catch (ParseException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    //如果參數綁定失敗返回null
    return null;
  }
}

2. 在配置文件中進行配置

<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
  <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
    <property name="converters">
      <!-- 自定義轉換器的類名 -->
      <bean class="com.ys.util.DateConverter"></bean>
    </property>
  </bean>

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

山阴县| 九江市| 喀喇沁旗| 张家港市| 江西省| 黑河市| 临城县| 清河县| 临高县| 镇原县| 泌阳县| 舒城县| 青海省| 岳阳市| 抚松县| 洱源县| 鸡泽县| 武夷山市| 大邑县| 达拉特旗| 尉氏县| 沙坪坝区| 马公市| 昌平区| 双峰县| 崇信县| 凉山| 嘉义县| 九台市| 柳河县| 灯塔市| 朔州市| 玉树县| 景洪市| 淅川县| 龙江县| 怀安县| 安龙县| 高安市| 白银市| 鹤壁市|