springMVC:前端请求后台并传值

简介: springMVC:前端请求后台并传值

动态请求

后台:@RequestMapping("/{dataType}/")

前台:url : G_CTX_PATH+ '/data/'+ param.dataType + '/'

后台:@RequestMapping(value="/htApList/{bereauCode}/{industryType}/{hotCode}/{hotName}/{hotAddr}/{hotAddress}")

前台:url:'${ctx}/manager/htApList/${bereauCode}/${industryType}/${hotCode}/${hotName}/${hotAddr}/${hotAddress}'

Ant风格的URL路径映射

@RequestMapping(value="/product?") // 可匹配“/product1”或“/producta”,但不匹配“/product”或“/productaa”;
@RequestMapping(value="/product*") // 可匹配“/productabc”或“/product”,但不匹配“/productabc/abc”;
@RequestMapping(value="/product/*") // 可匹配“/product/abc”,但不匹配“/productabc”;
@RequestMapping(value="/products/**/{productId}") // 可匹配“/products/abc/abc/123”或“/products/123”,也就是Ant风格和URI模板变量风格可混用;

请求方法

// 处理post 就换成 POST 
@RequestMapping (value="/start",method=RequestMethod.GET)

多个请求链接

  @RequestMapping(value = { "list", "" })
  //如果请求不倒url1就会请求url2
  @RequestMapping(value = { "url1", "url1" })

前端传值

1.表单方式

<form>
  title:<input type="text" name="title"/>
  content:<input type="text" name="content"/>
  <input type="submit" value="提交"/>
</form>

2.异步方式

      function save(postsId,userId,userNick) {
        $.ajax({
          type : "POST",
          url : '/posts/save',
          dataType : "json",
          data : {
            title: "这里是标题",
            content :"这里是内容"
          },
          success : function(data, textStatus, jqXHR) {
            alert("异步方法提交")
          }
        });
} 

3.框架加载

如: easyui load 加载

  //easyui的 load 事件中传递给url的参数不能过多
  //全部放到一个json变量中,然后作为load的参数就行了,jquery会自动调用这个方法处理json对象为键值对
  eg:var params={a:1,b:2,c:3,d:4,e:5/*...其他更多的*/}
  $('#dg').datagrid('load',params );
       //查询
      function search(){
        //定义一个model  实际也是json对象
        /*var params={
            org:$('#org').val(),
            beginTime:$('#beginTime').datebox('getValue'),
            endTime:$('#endTime').datebox('getValue'),
        }*/
        var org = $("input[name='org']").val();
        var beginTime = $('#beginTime').datebox('getValue');
        var endTime = $('#endTime').datebox('getValue');
        //json对象
        var params = {org:org,beginTime:beginTime,endTime:endTime};
         $("#dg").datagrid('load',params);
      };

Spring MVC 的请求参数获取的几种方法

1.通过@PathVariabl注解获取路径中传递参数

     @RequestMapping(value = "/{id}/{str}")
     public ModelAndView helloWorld(@PathVariable String id, @PathVariable String str) {
       System.out.println(id);
       System.out.println(str);
     return new ModelAndView("/helloWorld");
}

2.方法直接接收参数

public void saveComment(String title,String content) {
}

3.@ModelAttribute注解获取POST请求的FORM表单数据

    @RequestMapping(method = RequestMethod.POST)
    public String processSubmit(@ModelAttribute("pojo") Pojo pojo) {
      return "helloWorld";
 }

4.直接用model接收参数

表单参数注入到方法参数,和表单的name属性保持一致

public void saveComment(Pojo pojo) {}

5.直接用HttpServletRequest获取

@RequestMapping(method = RequestMethod.GET)
public String get(HttpServletRequest request, HttpServletResponse response) {
 String org = request.getParameter("org");
 System.out.println(org);
 return "helloWorld";
}

6.用注解@RequestParam绑定请求参数a到变量a

//当请求参数a不存在时会有异常发生,可以通过设置属性required=false解决
@RequestParam(value="a", required=false)
@RequestMapping(value = "/requestParam", method = RequestMethod.GET)
public String setupForm(@RequestParam("a") String a, ModelMap model) {
 System.out.println(a);
 return "helloWorld";
} 
public void saveComment(@RequestParam("title") String title,@RequestParam("content")String content) {
}

6.1用注解@RequestParam绑定Map接收不定参数

//@RequestParam  Map 接收不定参数
@RequestMapping(value = "/call", produces = "text/html;charset=UTF-8")  
@ResponseBody  
    public String callback(@RequestParam Map<String, String> params) {  
       return null;  
    } 


相关文章
|
2月前
|
前端开发
解决前端ajax跨域请求不携带cookie信息JSESSIONID的问题
解决前端ajax跨域请求不携带cookie信息JSESSIONID的问题
|
2月前
|
JSON 前端开发 Java
前端请求SpringBoot接口出现Required request body is missing
前端请求SpringBoot接口出现Required request body is missing
72 2
|
18天前
|
JavaScript 前端开发 网络协议
前端JS发起的请求能暂停吗?
在讨论前端JS发起的请求是否能暂停时,需要明确两个概念:什么状态可以被认为是“暂停”?以及什么是JS发起的请求?
78 1
前端JS发起的请求能暂停吗?
|
6天前
|
JSON 前端开发 Java
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
21 6
|
21天前
|
Java 数据库连接 容器
SpringMVC(四)【SSM 整合、统一结果封装、异常处理、前后台协议联调】(1)
SpringMVC(四)【SSM 整合、统一结果封装、异常处理、前后台协议联调】
|
4天前
|
前端开发
Request(获取请求数据的)请求转发,response响应数据,将数据反馈给前端
Request(获取请求数据的)请求转发,response响应数据,将数据反馈给前端
|
15天前
|
前端开发 API 数据库
面试官问:如何防止重复提交请求,99%的前端能说出来!
如何防止接口重复提交是一个常见的系统设计问题,主要目的是确保关键操作的原子性和一致性。以下是简化的摘要: 这些方法可以单独或组合使用,取决于系统规模和业务需求。例如,对于低流量系统,简单的请求唯一ID和数据库唯一索引可能足够;而对于高并发场景,可能需要结合前端禁用和后端分布式锁来提高可靠性。幂等性设计是确保接口安全的一种通用策略,适用于各种场景。
|
19天前
|
前端开发 Java Spring
Spring MVC 请求处理流程
Spring MVC 请求处理流程
14 0
|
21天前
|
前端开发
SpringMVC(四)【SSM 整合、统一结果封装、异常处理、前后台协议联调】(3)
SpringMVC(四)【SSM 整合、统一结果封装、异常处理、前后台协议联调】
|
21天前
|
JSON 前端开发 程序员
SpringMVC(四)【SSM 整合、统一结果封装、异常处理、前后台协议联调】(2)
SpringMVC(四)【SSM 整合、统一结果封装、异常处理、前后台协议联调】