springmvc的5种传值的方法

springmvc的5种传值的方法:

1.request获取值:

@RequestMapping("/request.action")
public String request(HttpServletRequest request){
    String value= (String) request.getAttribute("value");
    String val=request.getParameter("value");
    return "index";
}

request的getAttribute和getParameter有什么区别呢?

getAttribute:取得是setAttribute设定的值,session范围的值,可以设置为object,对象,字符串;getAttribute获取的值是web容器内部的,是具有转发关系的web组件之间共享的值;用于服务端重定向
getParameter:取得是从web的form表单的post/get,或者url传过来的值,只能是String字符串;getParameter获取的值是web端传到服务端的,是获取http提交过来的数据;用于客户端重定向。

2.使用路径变量@PathVariable绑定页面url路径的参数,用于进行页面跳转

   
@Controller
public class BaseController {

    @RequestMapping("/goUrl/{folder}/{file}")
    public String goUrl(@PathVariable String folder,@PathVariable String file){
        return  folder+"/"+file;
    }
}

3.通过@RequestParam绑定页面传来的参数,效果跟

String id=request.getParameter(“id”)是一样的:

@RequestMapping("/test.action")
public void test(@RequestParam("id") String id){
    System.out.println("id:"+id);
    
}

4.自动注入,实体类属性有setter,getter方法,前端form表单的name对应实体的属性名,后台直接可以通过该实体类自动把参数绑定到类的属性。

比如:实体类

public class Content {
   

   private String content;

public String getContent() {
    return content;
}

public void setContent(String content) {
    this.content = content;
} 
}

form表单:

<form action="<%=request.getContextPath()%>/content" method="post" enctype="multipart/form-data">

    商品描述:<textarea  name="content" rows="2" cols="20"></textarea><br>
   
  
    <input type="submit" value="提交"/>
</form>

后台接收数据:

@RequestMapping("/content")
public  void contetn(Content content){
    System.out.println("content:"+content.getContent());
}

5.使用RequestBody接受前端传来的json数组,对象。ResponseBody把数据返回

@RequestMapping("/test.action")
@ResponseBody
public void test(@RequestBody List<Content> list){
  for (Content content:list){
      System.out.println(content.toString());
  }

}


我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。


猜你喜欢

转载自blog.csdn.net/weixin_39220472/article/details/80293888