zoukankan      html  css  js  c++  java
  • ajax传参数组之request.getParameterValues

         web项目中,一般与后台进行交互,都使用ajax进行数据的提交

    在数据提交的过程中,一般为提交数据对象。但是在通常过程中,会使用到传入一系列的数据。如批量删除。

    我们可以通过传入数组来实现

       有以下几种方式:

         1、直接传入一个对象数组

        var param = [];
                param.push({"name":"ids", "value":id});
                
                $.ajax({
                    type:"POST",
                    async:true,  //默认true,异步
                    data:param,
                    url:"<%=request.getContextPath()%>/manageUser/delManageUser.action",
                    success:function(data){

        }})

       2、传入对象

        var param = [];
               param.push(id2);

        param.push(id1);
               $.ajax({
                   type:"POST",
                   async:true,  //默认true,异步
                   data:{
                       ids : param
                   },
                   url:"<%=request.getContextPath()%>/manageUser/delManageUser.action",
                   success:function(data){}

        })

      针对于上面的传值,后台java进行取值。详见如下代码

     
        @RequestMapping(value="delManageUser")
        @ResponseBody
            public String delManageUser(HttpServletRequest request){
            
        try {
          String[] ids = request.getParameterValues("ids[]");
                    for (String id : ids) {

            //todo

          }

        }catch(Exception e){

      }

      }

    通过如此取值,即可拿到数组。

    下面整理下getParameter和getParameterValues的区间

    一、 简单的对比

    request.getParameter用的比较多,相对熟悉

    request.getParameterValues(String   name)是获得如checkbox类(名字相同,但值有多个)的数据。   接收数组变量 ,如checkobx类型     
    request.getParameter(String   name)是获得相应名的数据,如果有重复的名,则返回第一个的值 . 接收一般变量 ,如text类型

    例:

    1. 三个名字相同的text标签

    <input type="text" name="test" value="1" /> 
    <input type="text" name="test" value="2" /> 
    <input type="text" name="test" value="3" />

    request.getParameterValues("test")   ----------------- [1, 2, 3]

    request.getParameter("test")             ------------------ 1

    ${paramValues.test}

    ${param.test}

    2. checkbox

     <input type="checkbox" name="habit" value="read">看书

     <input type="checkbox" name="habit" value="movie">电影

     <input type="checkbox" name="habit" value="game">游戏

    request.getParameterValues("habit")

    二、与此相关的话题------隐含对象

    1. JSP隐含对象(Implicit Object)

         所谓隐含对象,是指当编写jsp网页时,不必做任何声明就可以直接使用的对象。 JSP2.0定义了九个隐含对象

    request response pageContext session application out conifg page exception

    这里只提一下request 和 response 两个对象

           request 对象表示客户端请求的内容,比如我们从request中取得了用户输入的内容,实现了javax.servlet.http.HttpServletRequest接口

          response对象表示响应客户端的结果。

    上面我们使用了request的两个方法getParameter 和 getParameterValues,其实request还有其他几个比较重要的方法,这里只涉及几个获取请求参数的方法

    String getParameter(String name)                     取得name的参数值

    String[] getParameterValues(String name)        取得所有name的参数值

    Enumeration getParameterNames()                  取得所有的参数名称

    Map<String, String[]> getParameterMap()        取得request的所有参数的一个映射

    //

    Returns a java.util.Map of the parameters of this request. Request parameters are extra information sent with the request. For HTTP servlets, parameters are contained in the query string or posted form data.
    Returns:
    an immutable java.util.Map containing parameter names as keys and parameter values as map values. The keys in the parameter map are of type String. The values in the parameter map are of type String array.

    //

    response等其他几个隐含对象也有非常重要的身份,有机会专门整理一下,宣扬一下它们的显赫地位。

    2. EL隐含对象

    EL即Experssion Language,自JSP2.0后正式成为JSP的标准规范之一,支持Servlet2.4/JSP2.0的Container也就相应的支持EL语法。

    一个常见的形式如,<c:out value="${ 3 + 7 * 4}" />

    EL的隐藏对象有11个 PageContext PageScope RequestScope sessionScope applicationScope

    param paramValues header headerValues cookie initParam

    其中param 和 paramValues即对相应ServletRequest.getParameter(String name)和ServletRequest.getParameterValues(String name)

  • 相关阅读:
    cmd 重启oracle服务
    删除父节点同时删除该节点上的所有子节点(oracle)
    安装Oracle提示OracleMTSRecoveryService 已经存在,解决方法
    扩展easyui treegrid 级联选择
    Jetson TX2 不同的工作模式
    CMake版本升级
    高斯混合背景模型运动目标检测
    Windows WSL 安装OpenCV
    C++实现队列
    图像的尺度描述
  • 原文地址:https://www.cnblogs.com/cbliu/p/4832383.html
Copyright © 2011-2022 走看看