常用的一些Spring MVC的路由写法以及参数传递方式。

参考引用:

http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/mvc.html

这是一些测试例子:

package com.my.controller;

import java.io.PrintWriter;
import java.util.Date; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping(value="/default")
public class TestController { /**
* 使用ModelAndView
* @return
*/
@RequestMapping("/")
public ModelAndView index() {
ModelAndView mv = new ModelAndView();
mv.addObject("message", "This is index!");
mv.setViewName("index");
return mv;
} /**
* 使用Model
* @param model
* @return
*/
@RequestMapping("/index2")
public String index2(Model model) {
model.addAttribute("message", "This is index2!");
return "index2";
} /**
* 直接返回内容
* @return
*/
@RequestMapping(value="/index3", method=RequestMethod.GET)
@ResponseBody
public String index3() {
return "This is index3!";
} /**
* 直接返回对应的index4的view
*/
@RequestMapping(value="/index4", method=RequestMethod.GET)
public void index4() {
} /**
* 直接返回index5的view,注意方法后缀:Handler
* 比较与index4的区别
*/
@RequestMapping(value="/index5", method=RequestMethod.GET)
public void index5Handler() {
} /**
* 传参方式调用
* @param message
* @return
*/
@RequestMapping(value="/index6/{message}", method=RequestMethod.GET)
public ModelAndView index6(@PathVariable String message) {
ModelAndView view = new ModelAndView("index6");
view.addObject("message", message);
return view;
} /**
* 传参方式调用,使用Model
* 注意方法内的Model是直接addAttribute,没有key
* 区别index6
* @param message
* @param model
* @return
*/
@RequestMapping(value="/index7/{message}", method=RequestMethod.GET)
public String index7(@PathVariable String message, Model model) {
model.addAttribute(message);
return "index6";
} /**
* 传参调用
* 指定参数名称
* @param userName
* @param password
* @return
*/
@RequestMapping(value="/index8/{username}/{password}")
public ModelAndView index8(@PathVariable("username") String userName, @PathVariable("password") String password) {
ModelAndView view = new ModelAndView("index8");
view.addObject("userName", userName);
view.addObject("password", password);
return view;
} /**
* 使用request/response取得参数
* @param request
* @param response
* @return
*/
@RequestMapping(value="/index9")
public String index9(HttpServletRequest request, HttpServletResponse response) {
String message = request.getParameter("message");
request.setAttribute("message", message);
return "index9";
} /**
* 使用@RequestParam方式取得参数
* @param message
* @return
*/
@RequestMapping(value="/index10")
public ModelAndView index10(@RequestParam("message") String message) {
ModelAndView view = new ModelAndView("index10");
view.addObject("message", message);
return view;
} /**
* 默认传参方式
* @param message
* @param model
* @return
*/
@RequestMapping(value="/index11")
public String index11(String message, Model model) {
model.addAttribute("message", message);
return "index10";
} /**
* 传入PrintWriteer,也可以传入@CookieValue
* @param out
* @param message
* @param model
* @return
*/
@RequestMapping(value="/index12")
public String index12(PrintWriter out, String message, Model model) {
out.println(message);
model.addAttribute("message", message);
return "index10";
} /**
* 日期参数
* @param day
* @return
*/
@RequestMapping(value="/index13")
public ModelAndView index13(@RequestParam("day") @DateTimeFormat(pattern="yyyy-MM-dd") Date day) {
ModelAndView view = new ModelAndView("index10");
view.addObject("message", day.toString());
return view;
} /**
* 默认action
* @param message
* @return
*/
@RequestMapping
public ModelAndView index14(String message) {
ModelAndView view = new ModelAndView("index");
view.addObject("message", message);
return view;
} /**
* 限制访问的地址,必需有参数p=1才能触发
* @param message
* @param model
* @return
*/
@RequestMapping(value="/index15/{message}", params="p=1", method=RequestMethod.GET)
public String index15(@PathVariable("message") String message, Model model) {
model.addAttribute("message", message);
return "index";
} }

[Spring MVC] - 地址路由使用(一)的更多相关文章

  1. Java-Spring MVC:JAVA之常用的一些Spring MVC的路由写法以及参数传递方式

    ylbtech-Java-Spring MVC:JAVA之常用的一些Spring MVC的路由写法以及参数传递方式 1.返回顶部 1. 常用的一些Spring MVC的路由写法以及参数传递方式. 这是 ...

  2. Spring mvc创建的web项目,如何获知其web的项目名称,访问具体的链接地址?

    Spring mvc创建的web项目,如何获知其web的项目名称,访问具体的链接地址? 访问URL:  http://localhost:8090/firstapp/login 在eclipse集成的 ...

  3. Spring mvc源码url路由-我们到底能走多远系列(38)

    我们到底能走多远系列38 扯淡: 马航的事,挺震惊的.还是多多珍惜身边的人吧. 主题: Spring mvc 作为表现层的框架,整个流程是比较好理解的,毕竟我们做web开发的,最早也经常接触的就是一个 ...

  4. 使用Spring mvc接收整个url地址及参数时注意事项

    使用Spring mvc接收整个url地址及参数时注意事项:url= http://baidu?oid=9525c1f2b2cd45019b30a37bead6ebbb&td=2015-08- ...

  5. 基于Spring Boot构建的Spring MVC快速入门

    原文地址:http://tianmaying.com/tutorial/spring-mvc-quickstart 环境准备 一个称手的文本编辑器(例如Vim.Emacs.Sublime Text)或 ...

  6. Spring MVC URL传参

    Spring MVC 学习 之 - URL参数传递   在学习 Spring Mvc 过程中,有必要来先了解几个关键参数:    @Controller: 在类上注解,则此类将编程一个控制器,在项目启 ...

  7. Spring MVC中页面向后台传值的几种方式

    在学习 Spring Mvc 过程中,有必要来先了解几个关键参数:   @Controller:         在类上注解,则此类将编程一个控制器,在项目启动 Spring 将自动扫描此类,并进行对 ...

  8. 改造继续之eclipse集成tomcat开发spring mvc项目配置一览

    在上一篇的环境配置中,你还只能基于maven开发一个javase的项目,本篇来看如果开发一个web项目,所以还得配置一下tomcat和spring mvc. 一:Tomcat安装 在.net web开 ...

  9. 朱晔和你聊Spring系列S1E4:灵活但不算好用的Spring MVC

    阅读PDF版本 本文会以一些例子来展现Spring MVC的常见功能和一些扩展点,然后我们来讨论一下Spring MVC好用不好用. 使用SpringBoot快速开始 基于之前的parent模块,我们 ...

随机推荐

  1. 如何解决EditText使用时,点击外侧系统键盘不消失的bug

    在使用viewPager和EditText一起使用的时候,突然出现了一个bug,在点击EditText(此EditText是在ViewPager的Fragment中) 我在切换ViewPager的时候 ...

  2. 【转】PDF电子书分享

    http://www.voidcn.com/blog/u013830841/article/p-4343018.html http://www.voidcn.com/blog/u013830841/a ...

  3. Svn与Git的一些区别(转载)

    把第一条理解到位思想到位了做起来才会有的放矢,其他几条都是用的时候才能体会到 1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点,上手会很容易,声明一点Git并不是目前唯一的分布式版本 ...

  4. 补psp进度(11月4号-9号)

    这周psp进度 11月4号 内容 开始时间 结束时间 打断时间 净时间 小伙伴聊天实现 9:45 10:49 0 64m 学习HttpURLConnection 14:13 15:48 10m 85m ...

  5. 使用Git进行代码管理的心得

    使用GitHub进行代码托管的方法 我是直接下载 Github for Windows ,这个软件自带一个 Github 客户端 和一个 Git shell,其中Github是图形化界面,对初学者来说 ...

  6. 基于天天动听API开发在线音乐查询网站

    预览图 源码下载 地址:https://github.com/bajdcc/dev/tree/master/ttpod 文件夹说明: App_Code,WCF服务 Script,离线下载的celery ...

  7. iOS开发UI篇—iOS开发中三种简单的动画设置

    iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView b ...

  8. Wifite v2 is now available

    Wifite v2 is now available What's new in this version: support for cracking WPS-encrypted networks ( ...

  9. hdu 4635 Strongly connected

    http://acm.hdu.edu.cn/showproblem.php?pid=4635 我们把缩点后的新图(实际编码中可以不建新图 只是为了概念上好理解)中的每一个点都赋一个值 表示是由多少个点 ...

  10. Josephu--Java链表实现

    public class Josephu { public static void main(String[] args) { Cyclink cyclink=new Cyclink(); cycli ...