您好,登錄后才能下訂單哦!
本篇文章為大家展示了SpringMVC中Controller的返回類型是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
SpringMVC 的返回類型:
ModelAndView
Model
ModelMap
Map
String
void
ModelAndView
@RequestMapping("/hello")
public ModelAndView helloWorld() {
String message = "Hello World, Spring 3.x!";
return new ModelAndView("hello", "message", message);
}
通過ModelAndView構造方法可以指定返回的頁面名稱,也可以通過setViewName()方法跳轉到指定的頁面。
2. Map
@RequestMapping("/demo/show") public Map<String, String> getMap() { Map<String, String> map = new HashMap<String, String>(); map.put("key1", "value-1"); map.put("key2", "value-2"); return map; }
在jsp頁面中可直通過${key1}獲得到值, map.put()相當于request.setAttribute方法。
3.String (常用)
指定返回的視圖頁面名稱,結合設置的返回地址路徑加上頁面名稱后綴即可訪問到。
注意:如果方法聲明了注解 @ResponseBody ,則會直接將返回值輸出到頁面,輸出一段 json 字符串。
@RequestMapping(value="/show")
public String hello1(){
return "hello";
}
@RequestMapping(value="/print")
@ResponseBody
public String print(){
String message = "Hello World, Spring MVC!";
return message;
}
返回json的例子(使用Jackson):
/**
* testJson
* @param model
* @return
*/
@ResponseBody
@RequestMapping(value = "testJson", method = RequestMethod.POST)
public String test(String userName) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("status", "0");
jsonObject.put("status_text", "正常");
System.out.println(jsonObject.toString());
return jsonObject.toString();
}
4.void
如果返回值為空,則響應的視圖頁面對應為訪問地址
@RequestMapping("/index")
public void index() {
return;
}
對應的邏輯視圖名為”index”。
小結:
使用 String 作為請求處理方法的返回值類型是比較通用的方法,這樣返回的邏輯視圖名不會和請求 URL 綁定,具有很大的靈活性,而模型數(shù)據(jù)又可以通過 ModelMap 控制。
使用 void, map, Model 時,返回對應的邏輯視圖名稱真實 url 為:prefix 前綴 + 視圖名稱 + suffix 后綴組成。
使用String, ModelAndView 返回視圖名稱可以不受請求的url綁定,ModelAndView 可以設置返回的視圖名稱。
當使用重定向傳遞參數(shù)中文亂碼問題解決:把中文的參數(shù)放到 model 里傳遞。
model.addAttribute("queryName", user.getQueryName());
//return "redirect:user.jsp?queryName="+user.getQueryName()";
return "redirect:user.jsp";
上述內(nèi)容就是SpringMVC中Controller的返回類型是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。