gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Spring MVC 学习 之 - URL参数传递详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

@Controller:

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

?
1
2
3
@Controller
 
public class UserAction{ }

@RequestMapping 。

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

配置映射路径:

?
1
2
3
4
5
6
7
8
@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映射参数 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*
   *  直接输出 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;
  }
?
1
2
3
4
5
6
7
8
9
10
11
/*
   * 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;
  }
?
1
2
3
4
5
6
7
8
9
10
11
12
13
/*
   * 配置指定格式的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;
  }
?
1
2
3
4
5
6
7
8
/*
  * 只接收Post 请求
  */
@ResponseBody
@RequestMapping (value = "/posturl.html" , method = RequestMethod.POST)
public String UrlMethod( @RequestParam String id) {
   return "只能是Post请求,获取到的Id:" + id;
}
?
1
2
3
4
5
6
7
8
9
10
11
12
/*
  *  写入 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 ;
}
?
1
2
3
4
5
6
7
8
9
/*
   * 通过 @CookieValue 获取对应的key的值
   * */
@RequestMapping ( "/getcookies.html" )
public ModelAndView getCookie( @CookieValue ( "key" ) String cookvalue) {
   ModelAndView mode = new ModelAndView(ShowMsg);
   mode.addObject( "msg" , "cookies=" + cookvalue);
   return mode;
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
  * 将 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;
 
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
/*
  *  根据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;
}

 实现页面跳转:

?
1
2
3
4
5
6
7
8
9
10
/*
  * 实现页面跳转
  * /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 ()  。

回传实体:   。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@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  。

?
1
2
3
4
5
6
7
8
9
10
@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 。

输出:

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

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

最后此篇关于Spring MVC 学习 之 - URL参数传递详解的文章就讲到这里了,如果你想了解更多关于Spring MVC 学习 之 - URL参数传递详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com