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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

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

問題描述

在學(xué)習(xí)SpringMVC中的使用Controller接受表單的值,按照《Spring實(shí)戰(zhàn)》中的代碼,Controller如下:

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

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

問題解答

回答1:

不是的,@ModelAttribute有兩個(gè)作用,一個(gè)是取出數(shù)據(jù),也就是將數(shù)據(jù)從請(qǐng)求中取出來封裝到controller方法的參數(shù)中一個(gè)是將這個(gè)數(shù)據(jù)放置到Model中,這樣你就可以在jsp頁(yè)面中使用EL表達(dá)式取出數(shù)據(jù)并顯示

回答2:

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

回答3:

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

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 宝山区| 临洮县| 泰州市| 门头沟区| 富源县| 平顺县| 洞口县| 任丘市| 琼海市| 正安县| 米林县| 三台县| 唐河县| 芮城县| 安泽县| 乌兰县| 崇义县| 阳原县| 长岛县| 宜兰县| 永城市| 台南市| 新余市| 湘乡市| 廊坊市| 富蕴县| 中宁县| 吴忠市| 沙坪坝区| 昔阳县| 安新县| 中江县| 临汾市| 华阴市| 萝北县| 甘德县| 康平县| 丹棱县| 万宁市| 达日县| 青海省|