常用的一些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. ubuntu MySQL采用apt-get install安装目录情况

    安装服务器:root@ubuntu:/# apt-get install mysql-server-5.5 安装客户端:root@ubuntu:/# apt-get install mysql-cli ...

  2. Windows下配置OpenGL环境

    这里编译工具为VS2012. 首先OpenGL的官网如下链接(英文) http://www.opengl.org http://www.opengl.org/resources/libraries/g ...

  3. 常用js,css文件统一加载方法,并在加载之后调用回调函数

    原创内容,转载请注明出处! 为了方便资源管理和提升工作效率,常用的js和css文件的加载应该放在一个统一文件里面完成,也方便后续的资源维护.所以我用js写了以下方法,存放在“sourceControl ...

  4. OllyDBG 1.10

    OllyDBG 1.10 OllyDBG.exeOllyDBG SoftICE文件->打开 (快捷键是 F3)F2 断点 F9F8 步过 F10F7 步入 F8F4 运行到位置 F7F9 运行 ...

  5. 并发编程 05—— Callable和Future

    Java并发编程实践 目录 并发编程 01—— ThreadLocal 并发编程 02—— ConcurrentHashMap 并发编程 03—— 阻塞队列和生产者-消费者模式 并发编程 04—— 闭 ...

  6. 两个TextView控件居中显示

    通过一个线性布局将两个TextView控件包装在一起,设置LinearLayout的layout_centerInParent属性为true即可.代码如下 <LinearLayout andro ...

  7. Discuz升级提示static/image/postbg/3.jpg下载出现问题的解决办法

    discuz2.5升级3.0的时候出现错误.提示static/image/postbg/3.jpg下载出现问题,其解决办法如下 找到 source/admincp/admincp_upgrade.ph ...

  8. 监听器初始化Job、JobTracker相应TaskTracker心跳、调度器分配task源码级分析

    JobTracker和TaskTracker分别启动之后(JobTracker启动流程源码级分析,TaskTracker启动过程源码级分析),taskTracker会通过心跳与JobTracker通信 ...

  9. ubuntu SecureCRT破解

    操作过程: 操作过程都在终端中执行.Ubuntu 的破解 : 下载程序:   wget 链接: https://pan.baidu.com/s/1nvdJl7j 密码: 2ryk 运行破解 /usr/ ...

  10. 递归问题==优化 还有数据库sqlreader

    reader尽量不要用获取列名方式 用索引比较好.   int i= reader.GetOrdinal("<#=c.ColumnName#>");  reader[i ...