SpringMVC前後臺傳值寫法
注意:
此文件僅限於cc的個人專案,因為某些配置檔案不同,比如springMVC配置檔案配置了返回的jsp前後綴pages 和.jsp,返回到頁面的話前後綴可省略,再必須配置了返回物件的話會把其轉變為json的格式,所以看的時候要自動帶入。。。
1.前臺向後臺傳值:
1.1傳引數
只要name的值和controller的方法中引數一致即可
(1)jsp:
<h2>提交物件給後臺</h2> <form id="fm" method="post" action="${ctx}/user/login2.do"> <div> <div>使用者名稱:</div> <input type="text" name="userName" value=""/> <div>密碼:</div> <input type="password" name="password" value=""/> <div>手機號:</div> <input type="text" name="mobilePhone" value=""/> </div> <div> <!-- <button id="login" onclick="login();">登入</button> --> <input type="submit" value="登入"/> </div> </form>
(2)後臺controller:
@RequestMapping("/login2") public String login2(String userName,String password,String mobilePhone){ User user = new User(); user.setUserName(userName); user.setPassword(password); user.setMobilePhone(mobilePhone); User login = userService.findUserForLogin(user); if(login != null){ return "user/users"; } return "redirect:/index.jsp"; }
訪問:index.jsp:
http://localhost:8080/sm/(本人程式碼點選不起作用)
輸入引數點選登入,後臺可獲取到值
1.2傳物件
只要name的值與Bean實體類的屬性名稱一致即可,springMVC會自動識別成物件傳入
(1)實體類:
public class User implements Serializable{ private static final long serialVersionUID = 1L; //使用者編號 private Integer id; //使用者名稱 private String userName; //密碼 private String password; //手機號 private String mobilePhone; //地址 private String address; //身份/角色:1:遊客(預設) 2:讀者 3:作者 0:管理員 private Integer role; //備註 private String note; public User(){} //省略setter and getter … }
(2)jsp:
<h2>提交物件給後臺</h2>
<form id="fm" method="post" action="${ctx}/user/login.do">
<div>
<div>使用者名稱:</div>
<input type="text" name="userName" value=""/>
<div>密碼:</div>
<input type="password" name="password" value=""/>
<div>手機號:</div>
<input type="text" name="mobilePhone" value=""/>
</div>
<div>
<!-- <button id="login" onclick="login();">登入</button> -->
<input type="submit" value="登入"/>
</div>
</form>
如果物件內還有物件打點即可
(3)後臺controller:
@RequestMapping("/login")
public String login(User user){
User login = userService.findUserForLogin(user);
if(login != null){
return "user/users";
}
return "redirect:/index.jsp";
}
}
頁面跳轉至pages/user/users.jsp頁面:
(4)users.jsp:
<h1>所有使用者如下</h1>
<table>
<thead>
<tr>
<td>使用者編號</td>
<td>使用者名稱</td>
<td>密碼</td>
<td>手機號</td>
<td>聯絡地址</td>
<td>系統角色</td>
<td>備註</td>
</tr>
</thead>
<tbody>
<tr>
<c:forEach items="${users}" var="user">
<td>${user.id}</td>
<td>${user.userName}</td>
<td>${user.password}</td>
<td>${user.mobilePhone}</td>
<td>${user.address}</td>
<td>${user.role}</td>
<td>${user.note}</td>
</c:forEach>
</tr>
</tbody>
<tfoot>
</tfoot>
</table>
顯示如下:
使用者編號 使用者名稱 密碼 手機號 聯絡地址 系統角色 備註
1 cc 123456 18811111111 北京 1 我天,我們有了第一個使用者
1.3傳集合
(1)jsp:
<h2>提交集合給後臺</h2>
<form id="fm2" method="post" action="${ctx}/user/handleUserList.do">
<div>
<div>使用者名稱:</div>
<input type="text" name="users[0].userName" value=""/>
<div>密碼:</div>
<input type="password" name="users[0].password" value=""/>
<div>手機號:</div>
<input type="text" name="users[0].mobilePhone" value=""/>
</div>
<div>
<!-- <button id="login" onclick="login();">登入</button> -->
<input type="submit" value="登入"/>
</div>
</form>
(2)自定義使用的集合類:
//傳遞前後臺引數使用
public class UserListVO {
private List<User> users;
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}
(3)後臺controller:
@RequestMapping("/handleUserList")
@ResponseBody
public List<User> handleUserList(UserListVO userListVOs) {
return userListVOs.getUsers();
}
點選登入顯示:
[{“id”:null,”userName”:”cc”,”password”:”123456”,”mobilePhone”:”18810424140”,”address”:null,”role”:null,”note”:null}]
我會告訴你們set,map都需要這麼做麼,哈哈哈哈哈
1.4當然你還有萬能的
//Controller:
@RequestMapping(“handleRequest”)
Public void handleRequest(HttpServletRequest request){
//不多寫大家都會使
}
2.後臺向前臺傳值:
2.1返回物件
我這裡說的物件是Model和集合
2.1.1返回json字串
我這裡是返回物件直接轉化為json在.do的請求中,配置檔案中配置即可,注意配置後ie瀏覽器會預設.json是一個檔案,提示下載,想直接顯示瀏覽器中,要把它攔截下來轉化為text顯示,springMVC配置檔案如下:
<bean id="mappingJacksonHttpMessageConverter2" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<mvc:default-servlet-handler />
<!-- 啟動Spring MVC的註解功能,完成請求和註解POJO的對映 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter2" /><!-- json轉換器 -->
</list>
</property>
</bean>
當Controller中方法中返回物件且方法上註解@ResponseBody時,會在當前.do訪問路徑下顯示一個json字串,之前的例子有顯示,這裡不寫了。
2.1.2返回ModelAndView物件
此物件是一個檢視解析器,既包含view也包含物件資料object
Controller:
@RequestMapping("/queryAll2")//@RequestMapping請求與執行對應上
public ModelAndView queryAll2(){
List<User> users = userService.findAll();
/*
* 1.ModelAndView:即包含檢視資訊,也包含模型資料資訊,這樣spring mvc就可以使用檢視對模型資料進行渲染了。
* 可以簡單的將模型資料看做一個Map<String,Object>物件
* 如下方法新增模型資料:
* ModelAndView addObject(String attributeName,Object attributeValue);
* ModelAndView addAllObjects(Map<String,?> modelMap);
* 如下方法設定檢視:
* void setView(View view);指定一個具體的檢視物件
* void setViewName(String viewName):指定一個邏輯檢視名
*/
ModelAndView mav = new ModelAndView();
mav.setViewName("user/users");
mav.addObject("users", users);
return mav;
}
訪問此路徑:http://localhost:8080/sm/user/queryAll2.do(本人專案點選無反應)
頁面會跳轉至users.jsp,且有資料顯示。
2.2返回頁面
直接返回頁面不帶引數可直接返回String型別的路徑:
return "user/users";
我這裡在springMVC配置中配置了頁面資源前後綴pages和.jsp可省略。
如果希望返回String型別去頁面但是帶上一些資料:
[email protected]
此註解在請求引數中,它把請求引數也作為返回物件返回
,也就是說雖然返回的是一個jsp的字串型別,可是此jsp中還帶著此引數,可用el表示式獲取。
因為@ModelAttribute會把引數儲存到request中,springMVC預設返回的路徑是一個請求轉發。
重定向可以這麼寫:
return "redirect:/index.jsp";
此時需要前後綴,我也不知為毛,可能是配置檔案中預設也是請求轉發才會帶上
示例:同前臺向後臺傳值部分的傳物件,發現雖然返回的是一個jsp:”user/users”,但是
${user.userName}也可以獲取到
2.2.2ModelMap
此物件在springMVC中稱為隱式物件,存在這裡也相當於存在了request中,可以在頁面直接獲取,一般放在引數位置,springMVC一旦發現有Map或Model型別的入參,就會將請求內在的隱含模型物件傳遞給這些引數,因此在方法體重可以通過這個入參對模型中的資料進行讀寫操作。
(1)Controller:
//可以預先定義ModelMap中固定有什麼,一旦引數裡有ModelMap,這個物件就會放進去
//例,此時modelMap中有鍵值對”cc”=”cc”
@ModelAttribute("cc")
public String getCc() {
return “cc”;
}
@RequestMapping("/handleModelMap")
public String handleModelMap(ModelMap modelMap) {
//放入新的物件
modelMap.addAttribute("dd", "I'm dd");
//springMVC將請求對應的隱含模型物件傳遞給modelMap,因此可以在方法中
//它訪問模型中的資料 @ModelAttribute("cc")getCc處定義了
String cc = (String) modelMap.get("cc");
//如果放一個List
List<User> users = userService.findAll();
modelMap.addAttribute("users", users);
return "user/users";
}
(2)jsp:
在users.jsp中el表示式可以訪問到:
<div>
<h2>ModelMap test</h2>
<input type="text" value="${cc }"/>
<input type="text" value="${dd}"/>
<input type="text" value="${users[0].userName }"/>
</div>
顯示如下:
ModelMap test
cc I’m dd cc
相關推薦
SpringMVC前後臺傳值寫法
注意: 此文件僅限於cc的個人專案,因為某些配置檔案不同,比如springMVC配置檔案配置了返回的jsp前後綴pages 和.jsp,返回到頁面的話前後綴可省略,再必須配置了返回物件的話會把其轉變為json的格式,所以看的時候要自動帶入。。。 1.前臺
SpringMVC中的前後臺傳值注意事項
1.前臺設定contentType:"application/x-www-form-urlencoded",前臺是JSON物件,後臺接收方法可以是字串、物件。示例如下: function remoteService(url,postData) {var res = ""
最基本的前後臺傳值
static ati 代碼 pre 成功 his type lis exp <!DOCTYPE html><html><head> <meta charset="utf-8"> <title></ti
SpringMVC頁面傳值
mvc 傳值 ray springmvc name web mvc頁面傳值 urn 小明 public ModelAndView query(){ ModelAndView modelAndView = new ModelAndView(); List list =
SSH框架學習------struts2前後臺傳值(二)
sts put ret req extends imp tps str rri struts2的Action類一般都會繼承(extends)ActionSupport類(Action類,即實現action的類)1.前傳後:jsp裏<input type="text"
springmvc ajax傳值詳解
div ring ajax info clas spring image png 技術 springmvc ajax傳值詳解
【springmvc】傳值的幾種方式&&postman接口測試
red ews 參數 一點 名稱 each comment PQ 分享圖片 最近在用postman測試postman接口,對於springmvc傳值這一塊,測試了幾種常用方式,總結一下。對於postman這個工具的使用也增加了了解。p
使用Json進行前後臺傳值
一、傳值方式 Json通過字串形式進行前後臺傳值 二、Jsp_Servlet_前後臺傳值 從前臺向後臺傳值:使用x-www-form-urlencoded:request.getParameter()方法獲取js
SpringMVC前端傳值的問題總結
最近在忙著一個練習,前端的引數傳到後臺都變為null 百度了下,發現最終是因為用錯一個註解導致,使用路徑直接訪問是通過@PathVariabl String id,看了一下使用註解獲取路徑中傳遞引數 ,共有以下幾種情況: 路徑中引數帶有 @Req
JAVA WEB前後臺傳值
- 理清業務流程 先將需要將前臺中獲取頁面中所提供給你的資訊,然後將這資訊傳送給後臺服務層。 思路很簡單,那麼直接上程式碼:(程式碼中有些語句的寫法可能有些奇怪,這是因為博主使用了《澤元》框架完成的,但是無論用什麼這些過程本質都是一樣的)
Springmvc前端傳值到後臺 對應實體類接收
繫結陣列每個商品前有一個checkbok,選中多個商品後點擊刪除按鈕把商品id傳遞給Controller。jsp頁面<c:forEach items="${itemList }"var="item"> <tr> <td><in
關於json前後臺傳值
function checkname() { varIdCard= document.getElementById("uIdCard").value; varIdCardValid= document.getElementById("uIdCardValid"); if(IdCard.length<6|
struts2前後臺傳值---利用值棧
在action中將查出的資料放入到值棧中 //準備資料 List<Department> departmentList=departmentService.findA
jsp 下拉框,前後臺傳值
public String add(){ ObjectMap params=ObjectMap.newInstance(); List rolelist=roleService.list(params,page); setAttribute("rolelist
jQuery運用BootStrap風格的Ztree前後臺傳值-多選框
我個人後臺使用List<Map<String,Object>>拼接,轉換為Json陣列傳遞到前臺,程式碼片段如下:List<Map<String, Object&g
SpringMVC前臺給後臺傳值的方式
lan prop 類型 weight 可能 return 註意 保持 tool 轉自:http://blog.csdn.net/flymoringbird/article/details/53126505 1. 基本數據類型(以int為例,其他類似): Controll
Java SpringMVC框架學習(二)httpServeltRequest和Model傳值的區別
urn ont ppi mode array style att 區別 () 為什麽大多程序在controller中給jsp傳值時使用model.addAttribute()而不使用httpServeletRequest.setAttribute()? 事實上model數
vue插槽,也就是子頁面、父頁面相互傳值的另一寫法
style def com data component rop 頁面 ret slot 父頁面: <template> <div class="parent"> <p>父組件</p> <child> &l
SpringMVC傳值、轉發、重定向例子
modelmap mapping 成功 實體 this 測試 set import 方法參數 練習接收頁面參數值 使用request 使用@RequestParam註解 使用實體對象 練習向頁面傳出數據 使用HttpServletRequest和session 使用Mo
springmvc的前後端傳值
lis mod ttr attribute orm ces brush str get 一.後端傳值給前端 1.ModelAndView @RequestMapping("/testModelAndView") public ModelAndView testModelA