Map
@RequestMapping(
"/demo2/show")
public
Map<
String,
String> getMap() {
Map<
String,
String> map =
new HashMap<
String,
String>();
map.put(
"key1",
"value-1");
map.put(
"key2",
"value-2");
//在jsp页面中可直通过${key1}获得到值, map.put()相当于request.setAttribute方法。
return map;
}
String
指定返回的视图页面名称。如果方法还声明了注解@ResponseBody ,则会直接将返回值输出到页面
@RequestMapping(
"/getAllArticle")
public String getAll(HttpServletRequest request,Model model){
List<Article> article =
this.articleService.getAll();
model.addAttribute(
"news",
JSON.toJSONStringWithDateFormat(article,
"yyyy-MM-dd HH:mm"));
//参数可在jsp页面获得
return "showNews";
//返回showNews.jsp
}
json
@RequestMapping(
"/getAllArticle")
public String getAll(){
List<Article> article =
this.articleService.getAll();
return JSON.toJSONStringWithDateFormat(article,
"yyyy-MM-dd HH:mm"));
}
}
void
如果返回值为空,则响应的视图页面对应为访问地址
@RequestMapping(
"/index")
public void index() {
return;
//对应的逻辑视图名为"index"
}
Controller中url的几种风格
RequestMapping()
普通的url
这种是最简单的url映射,可以接收到localhost:8080/contextName/hello这样的请求
@RequestMapping(
"/hello")
public @ResponseBody String test() {
return "hello!";
}
多个普通的url路径
RequestMapping可以同时指定多个url,映射到同一个应答逻辑中:
@RequestMapping(value={
"/multi1",
"/multi2",
"/test/multi"})
public @ResponseBody String multiUrl() {
return "test multi url";
}
基于路径变量的URL映射
这种URL映射可以直接在路径上指定变量,通过@PathVariable可以获得对象。
//基本的URL模板映射
@RequestMapping(value=
"/user1/{name}")
public @ResponseBody String basicUrl1(
@PathVariable String name){
return "hello"+name;
}
@RequestMapping(value=
"/user2/{name}/test")
public @ResponseBody String basicUrl2(
@PathVariable String name){
return "hello"+name+
"test";
}
@RequestMapping(value=
"/user1/{name}/test/{age}")
public @ResponseBody String basicUrl3(
@PathVariable String name,
@PathVariable int age){
return "hello"+name+
" age"+age;
}
本文永久更新链接地址: