国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

java - SpringMVC中的@ModelAttribute注解是可有可無的嗎?

瀏覽:132日期:2024-01-06 11:43:50

問題描述

在學習SpringMVC中的使用Controller接受表單的值,按照《Spring實戰》中的代碼,Controller如下:

@RequestMapping(value = '/register', method = POST) public String processRegistration(Spitter spitter) {System.out.println(spitter.getUsername());spitterRepository.save(spitter);return 'redirect:/spitter/' + spitter.getUsername(); }

打印那行是我自己加的,用來驗證表單的值是否綁定到了Spitter對象而Spring官方的教程中在Spitter前面多了一個@ModelAttribute注解,但是在這個例子里面產生的效果和不加似乎是一樣的,都能夠綁定表單信息到對象中,所以想問下這個注解的功能?在這個例子中是不是即使不顯示寫也能有一樣的功能?

問題解答

回答1:

不是的,@ModelAttribute有兩個作用,一個是取出數據,也就是將數據從請求中取出來封裝到controller方法的參數中一個是將這個數據放置到Model中,這樣你就可以在jsp頁面中使用EL表達式取出數據并顯示

回答2:

如果在參數上加了@ModelAttribute 注解,再執行@RequestMapping之前會先找到@ModelAttribute中的key,如果沒有@ModelAttribute ,如何沒有或者沒有獲取到則會通過反射實例化一個spitter對象,再通過request拿到你set到對象里面的值。雖然結果是一樣的,但是走的流程不一樣。

回答3:

雖然有它自己特點,但是用了這么久,都沒用上過,我覺得可以忽略 @ModelAttribute

標簽: java
相關文章:
主站蜘蛛池模板: 五大连池市| 大英县| 平原县| 盐源县| 奇台县| 博野县| 光山县| 兴文县| 东安县| 英德市| 东乡族自治县| 镇安县| 辽中县| 永清县| 通州区| 阜新| 阳西县| 广水市| 建昌县| 子长县| 汶上县| 台江县| 德清县| 碌曲县| 宁强县| 无极县| 海城市| 诸暨市| 公主岭市| 通山县| 全南县| 定陶县| 遂平县| 钦州市| 昌黎县| 晋宁县| 兰考县| 南郑县| 高碑店市| 阳春市| 马关县|