springmvc在controller和视图之间传递参数
?
從視圖向controller傳遞值, ?controller <--- 視圖
?1)簡單類型,如int, String, 應(yīng)在變量名前加@RequestParam注解,
例如:
@RequestMapping("hello3")public String hello3( @RequestParam("name" ) String name,@RequestParam("hobby" ) String hobby){System. out.println("name=" +name);System. out.println("hobby=" +hobby); return "hello" ;}但這樣就要求輸入里面必須有這兩個參數(shù)了,可以用required=false來取消,例如:
@RequestParam(value="name",required=false) String name
?
2)對象類型:
@RequestMapping("/hello4" )public String hello4(User user){System.out.println("user.getName()=" +user.getName());System.out.println("user.getHobby()=" +user.getHobby());return "hello";}?
Spring MVC會按:
? ? ?“HTTP請求參數(shù)名= ?命令/表單對象的屬性名”
? ? 的規(guī)則自動綁定請求數(shù)據(jù),支持“級聯(lián)屬性名”,自動進(jìn)行基本類型數(shù)據(jù)轉(zhuǎn)換。
?
即有一個User類,如下
package model;public class User {private String name ;private String hobby ;public User(){}public User(String name, String hobby) {this.name = name;this.hobby = hobby;} //...get/set方法略
?
則頁面上可以用
提交后,把值直接綁定到user對象上。
?
此外,還可以限定提交方法為POST,即修改方法的@RequestMapping注解為
?
?
<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter </filter-class><init-param><param-name>encoding</param-name><param-value>utf8</param-value></init-param> </filter><filter-mapping><filter-name>encodingFilter</filter-name ><url-pattern>/*</url-pattern> </filter-mapping>
-----------------------以下轉(zhuǎn)載-----------
1,使用HttpServletRequest獲取
Java代碼???2,Spring會自動將表單參數(shù)注入到方法參數(shù),和表單的name屬性保持一致。和Struts2一樣
Java代碼???
3,自動注入Bean屬性
??
Java代碼???
Java代碼???
向頁面?zhèn)髦?#xff1a;
當(dāng)Controller組件處理后,向jsp頁面?zhèn)髦?#xff0c;
1,使用HttpServletRequest 和 Session ?然后setAttribute(),就和Servlet中一樣
2,使用ModelAndView對象
3,使用ModelMap對象
4,使用@ModelAttribute注解
?
Model數(shù)據(jù)會利用HttpServletRequest的Attribute傳值到success.jsp中
Java代碼???
使用ModelMap參數(shù)對象示例:
ModelMap數(shù)據(jù)會利用HttpServletRequest的Attribute傳值到success.jsp中
Java代碼???
?使用@ModelAttribute示例
在Controller方法的參數(shù)部分或Bean屬性方法上使用
@ModelAttribute數(shù)據(jù)會利用HttpServletRequest的Attribute傳值到success.jsp中
Java代碼???
Session存儲:
可以利用HttpServletReequest的getSession()方法
Java代碼???
Spring MVC 默認(rèn)采用的是轉(zhuǎn)發(fā)來定位視圖,如果要使用重定向,可以如下操作
1,使用RedirectView
2,使用redirect:前綴
Java代碼??? ?或者用如下方法,工作中常用的方法:
Java代碼???
總結(jié)
以上是生活随笔為你收集整理的springmvc在controller和视图之间传递参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hadoop为什么出现
- 下一篇: 计算机的网络技术的普及,计算机网络技术的