SpringMVC學習筆記07——自定義類型轉換器解決日期錯誤(ctrl+N搜索類)
繼續沿用代碼。。
1. 修改User.java
,修改代碼如下
public class User implements Serializable {
private String name;
private String password;
private Date birthday;
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", password='" + password + '\'' +
", birthday=" + birthday +
'}';
}
}
2. 在index.jsp
中添加如下代碼
<form action="hello/testConvertor" method="post">
姓名:<input type="text" name="name"/>
密碼:<input type="text" name="password"/>
生日:<input type="text" name="birthday"/>
<input type="submit" value="提交"/>
</form>
3. 在HelloController.java``中添加如下代碼
@RequestMapping(value = "/testConvertor")
public String testConvertor(User user) {
System.out.println("testConvertor方法執行了");
System.out.println(user);
return "success";
}
4. 創建如下轉換器目錄
-
StringToDate.java
public class StringToDate implements Converter<String, Date> { /** * 將字符串按照自己定義的模式進行日期類型轉換 * @param s 傳入的字符串 * @return */ @Override public Date convert(String s) { // 判斷字符串是否為空 if (s == null || s.trim().equals("")){ throw new RuntimeException("用戶輸入有誤或未輸入"); } DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { // 進行日期轉換后返回轉換結果 return format.parse(s); } catch (ParseException e) { e.printStackTrace(); throw new RuntimeException("數據類型轉換出現錯誤"); } } }
5. 在springmvc.xml
文件中添加如下代碼
<!--配置自定義類型轉換器-->
<bean class="org.springframework.context.support.ConversionServiceFactoryBean" id="conversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.it.Converter.StringToDate"/>
</set>
</property>
</bean>
<!-- 配置spring開啟注解mvc的支持 -->
<mvc:annotation-driven conversion-service="conversionServiceFactoryBean"/>
</beans>
6. 啟動tomcat進行測試
-
瀏覽器
-
控制臺
-
注意這樣做后,以前的默認的輸入方式“1777/5/21”則失效
智能推薦
SpringMVC自定義類型轉換器
在表單提交得的數據類型都是字符串類型的,但是后臺定義的是int類型的,數據還是可以封裝進去,SpringMVC默認是進行數據類型轉換。但是對于日期類型的數據進行轉換,就會出現錯誤。 這時我們就需要自定義進行數據封裝。就比如下面的類型轉換(日期的格式轉換) Controller類 使用對象進行數據封裝 執行的代碼: 對于輸入的2021-04-14默認的數據類型是無法轉換的,輸入2021/...
SSM筆記-SpringMVC的自定義類型轉換器
1、步驟: ①建立對應的bean和dao ②建立form表單 ③建立handler(①handler的參數需要更表單控件name值一樣 ②要用@RequestParam修飾方法的參數) ④建立converter類,且繼承org.springframework.core.convert.converter.Converter ⑤實現org.springframework.core.convert.c...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
猜你喜歡
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...