首页 课程 师资 教程 报名

5种SpringMVC传参方法

  • 2021-12-09 12:22:03
  • 1871次 星辉

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.使用RequestBody接受前端传来的json数组,对象。ResponseBody把数据返回

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

5.自动注入,实体类属性有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());
}

如果您想了解更多相关知识,不妨来关注一下星辉的SpringMVC教程,课程内容通俗易懂,适合没有基础的小伙伴学习,希望对大家能够有所帮助。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交