全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Spring MVC 学习 之 - URL参数传递详解

在学习 Spring Mvc 过程中,有必要来先了解几个关键参数:

@Controller:

在类上注解,则此类将编程一个控制器,在项目启动 Spring 将自动扫描此类,并进行对应URL路由映射。

@Controller

public class UserAction{ } 

@RequestMapping

指定URL映射路径,如果在控制器上配置 RequestMapping  ,具体请求方法也配置路径则映射的路径为两者路径的叠加 常用映射如:RequestMapping("url.html")

配置映射路径:

@Controller
public class UserAction 
{
  @RequestMapping(value = "/get_alluser.html")
  public ModelAndView GetAllUser(String Id)
  {
  }
} 

以上配置映射

http://***:8080:web1/get_alluser.html:

如在 @Controller添加 @RequestMapping(value = "/user"),则映射路径变成

http://***:8080:web1/user/get_alluser.html

@ResponseBody

将注解方法对应的字符串直接返回

 @RequestParam

自动映射URL对应的参数到Action上面的数值,RequestParam 默认为必填参数。

 @PathVariable

获取@RequestMapping 配置指定格式的URL映射参数

 /*
   *  直接输出 HTML,或JSON 字符串
   *  请求路径:
   *    /web1/urlinfo/getcontent.html?key=rhythmk
   *   /web1/urlinfo/getcontent.json?key=rhythmk
   * */
  @ResponseBody
  @RequestMapping(value = "/getcontent.**")
  public String GetContent(
      @RequestParam("key") String key,
      @RequestParam(value = "key2", required = false, defaultValue = "defaultValue") String key2) {
    System.out.println("getcontent 被调用");
    String result = "直接返回内容 - key:" + key + ",key2:" + key2;
    System.out.println(result);
    return result;
  } 

 /*
   * RequestMapping 支持 Ant 风格的URL配置 :
   * 请求路径:
   *   /urlinfo/geturlant/config.html?key=adddd
   */
  @ResponseBody
  @RequestMapping(value = "/geturlant/**.html")
  public String getUrlAnt(HttpServletRequest request) {
    String result = "?后面的参数为:" + request.getQueryString();
    return result;
  } 
 /*
   * 配置指定格式的URL,映射到对应的参数
   *  请求路径:/web1/urlinfo/geturlparam/12_123.html
   *   
   * */
  
  @RequestMapping(value = "/geturlparam/{id}_{menuId}.html")
  public ModelAndView getUrlParam(@PathVariable("id") String id,
      @PathVariable("menuId") String menuId) {
    ModelAndView mode = new ModelAndView(ShowMsg);
    mode.addObject("msg", "获取到的Id:" + id + ",menuId:" + menuId);
    return mode;
  } 
  /*
   * 只接收Post 请求
   */
  @ResponseBody
  @RequestMapping(value = "/posturl.html", method = RequestMethod.POST)
  public String UrlMethod(@RequestParam String id) {
    return "只能是Post请求,获取到的Id:" + id;
  } 
  /*
   *  写入 cookie
   * */ 
  @RequestMapping("/writecookies.html")
  public ModelAndView writeCookies(@RequestParam String value,
      HttpServletResponse response) {

    response.addCookie(new Cookie("key", value));
    ModelAndView mode = new ModelAndView(ShowMsg);
    mode.addObject("msg", "cookies 写入成功");
    return mode ;
  } 

  /*
    * 通过 @CookieValue 获取对应的key的值
    * */
  @RequestMapping("/getcookies.html")
  public ModelAndView getCookie(@CookieValue("key") String cookvalue) {
    ModelAndView mode = new ModelAndView(ShowMsg);
    mode.addObject("msg", "cookies=" + cookvalue);
    return mode;
  } 
  /* 
   * 将 Servlet Api 作为参数传入 
   *  可以在action中直接使用 HttpServletResponse,HttpServletRequest
   * */
  @RequestMapping("/servlet.html")
  public String Servlet1(HttpServletResponse response,
      HttpServletRequest request) {

    Boolean result = (request != null && response != null);
    ModelAndView mode = new ModelAndView();
    mode.addObject("msg", "result=" + result.toString());
    return ShowMsg;

  } 
  /*
   *  根据URL传入的参数实例化对象
   *  
   *  如: http://127.0.0.1:8080/web1/urlinfo/getobject.html?UserId=1&UserName=ad
   * */
  @RequestMapping("getobject.html")
  public ModelAndView getObject(UserInfo user) {
    String result = "用户ID:" + user.getUserId().toString() + ",用户名:"
        + user.getUserName().toString();
    ModelAndView mode = new ModelAndView(ShowMsg);
    mode.addObject("msg", "result=" + result.toString());
    return mode;
  } 

 实现页面跳转:

  /* 
   * 实现页面跳转
   * /web1/urlinfo/redirectpage.html
   * */
  @RequestMapping("/redirectpage.html")
  public String RedirectPage()
  {
    return "redirect:getcookies.html?r=10"; 
        
  } 

直接回传JSON

请求的URL地址一定是以.json结尾,否则异常

Failed to load resource: the server responded with a status of 406 (Not Acceptable) : The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers () 

回传实体:
 

@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class UserInfo {

   private Integer UserId;
   public Integer getUserId() {
    return UserId;
  }
  public void setUserId(Integer userId) {
    UserId = userId;
  }
  public String getUserName() {
    return UserName;
  }
  public void setUserName(String userName) {
    UserName = userName;
  }
  private String UserName;
   
   
} 

回传 action 

@ResponseBody
  @RequestMapping("/getuser.json")
  public UserInfo GetUser()
  {
    System.out.println("getuser");
    UserInfo model=new UserInfo();
    model.setUserId(100);
    model.setUserName("王坤");
    return model;
  } 

请求:

/web1/urlinfo/getuser.json

输出:

 {"userId":100,"userName":"王坤"}

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# springmvc的参数传递  # spring  # mvc  # url参数  # springmvc接收url参数  # 解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题  # 详解SpringMVC——接收请求参数和页面传参  # 详解SpringMVC重定向传参数的实现  # 学习SpringMVC——如何获取请求参数详解  # spring MVC中传递对象参数示例详解  # springmvc 传递和接收数组参数的实例  # 详解SpringMVC 自动封装枚举类的方法  # 详解Spring MVC自动为对象注入枚举类型  # spring mvc4的日期/数字格式化、枚举转换示例  # Spring MVC处理参数中的枚举类型通用实现方法  # 回传  # 此类  # 跳转  # 几个  # 有必要  # 如在  # 必填  # 大家多多  # 过程中  # 默认为  # 器上  # return  # System  # println  # result  # defaultValue  # false  # rhythmk  # key  # json 


相关文章: 如何在云主机上快速搭建多站点网站?  建站168自助建站系统:快速模板定制与SEO优化指南  如何通过VPS建站无需域名直接访问?  建站之星伪静态规则如何设置?  已有域名如何免费搭建网站?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  宝塔面板创建网站无法访问?如何快速排查修复?  如何选择靠谱的建站公司加盟品牌?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  专业网站建设制作报价,网页设计制作要考什么证?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  如何选购建站域名与空间?自助平台全解析  建站中国官网:模板定制+SEO优化+建站流程一站式指南  建站之星图片链接生成指南:自助建站与智能设计教程  Thinkphp 中 distinct 的用法解析  建站之星导航菜单设置与功能模块配置全攻略  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何在IIS中配置站点IP、端口及主机头?  C++中引用和指针有什么区别?(代码说明)  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何在Tomcat中配置并部署网站项目?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  定制建站是什么?如何实现个性化需求?  如何通过主机屋免费建站教程十分钟搭建网站?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  南宁网站建设制作定制,南宁网站建设可以定制吗?  如何有效防御Web建站篡改攻击?  制作销售网站教学视频,销售网站有哪些?  焦点电影公司作品,电影焦点结局是什么?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  建站之星安装需要哪些步骤及注意事项?  如何确保西部建站助手FTP传输的安全性?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  如何用美橙互联一键搭建多站合一网站?  如何通过西部建站助手安装IIS服务器?  如何高效完成独享虚拟主机建站?  建站主机服务器选购指南:轻量应用与VPS配置解析  jQuery 常见小例汇总  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  如何获取免费开源的自助建站系统源码?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  网页设计网站制作软件,microsoft office哪个可以创建网页?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  建站之星展会模版如何一键下载生成?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何通过虚拟机搭建网站?详细步骤解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。