当前位置: 首页 > news >正文

SpringMvc的请求-获得请求参数

客户端请求参数的格式是: name=value&name=value..…

服务器端要获得请求的参数,有时还需要进行数据的封装,SpringMVC可以接收如下类型的参数:

  基本类型参数
  POJO类型参数
  数组类型参数
  集合类型参数

获得基本类型参数

Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配。

获得POJO类型参数

获得数组类型参数

获得集合数据类型参数

import java.util.List;

public class Vo {
    private List<User> userList;

    @Override
    public String toString() {
        return "Vo{" +
                "userList=" + userList +
                '}';
    }

    public List<User> getUserList() {
        return userList;
    }

    public void setUserList(List<User> userList) {
        this.userList = userList;
    }
}


    @RequestMapping("/quick11")
    @ResponseBody//告诉SPring框架, 不进行视图跳转, 直接进行数据响应
    public void save11(Vo vo){
        System.out.println(vo);
    }


<body>
    <form action="${pageContext.request.contextPath}/user/quick11" method="post">
<%--        要表明第几个User对象的name和age--%>
        <input type="text" name="userList[0].username"><br/>
        <input type="text" name="userList[0].age"><br/>
        <input type="text" name="userList[1].username"><br/>
        <input type="text" name="userList[1].age"><br/>
        <input type="text" name="userList[2].username"><br/>
        <input type="text" name="userList[2].age"><br/>
        <input type="text" name="userList[3].username"><br/>
        <input type="text" name="userList[3].age"><br/>
        <input type="submit" value="提交">
    </form>
</body>

 直接访问会出现找不到资源的情况需要对静态资源访问权限开放

第一种开放资源的访问权限      第二种交给原始容器去匹配寻找静态资源 

 

运行时汉字出现乱码需要在WEB.XML配置全局过滤的filter

<!--    配置全局过滤的filter-->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

参数绑定注解@requestParam 

 获得Restful等个的参数

 自定义类型转换器

 

//①
public class DataConverter implements Converter<String, Data> {
    @Override
    public Data convert(String source) {
        //将日期字符串转换为日期对象 然后返回
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Data data = null;
        try {
            Date date = format.parse(source);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        return data;
    }
}


//②
<!--    声明转换器-->
    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <list>
                <bean class="com.itheima.converter.DataConverter"/>
            </list>
        </property>
    </bean>
</beans>


//③
<!--    mvc的注解驱动-->
    <mvc:annotation-driven conversion-service="conversionService"/>

获得Servlet相关API

获得请求头信息

http://www.dtcms.com/a/121943.html

相关文章:

  • 启山智软的营销方法有哪些优势?
  • 大数据(7)Kafka核心原理揭秘:从入门到企业级实战应用
  • 机器学习 Day10 逻辑回归
  • 设计模式 Day 5:夯实观察者模式(Boost 实战精讲)
  • excel中的VBA指令示例(二)
  • 【Java】Java 中不同类型的类详解
  • 【PVR】《Palm Vein Recognition and Large-scale Research based on Deep Learning》
  • 今日行情明日机会——20250409
  • P9242 [蓝桥杯 2023 省 B] 接龙数列
  • Anacond虚拟环境里安装GPU版本Pytorch
  • linux下截图工具的选择
  • Linux权限管理:从入门到实践
  • 网页部署到宝塔服务器上,发送请求报错?org.springframework.data.redis.RedisSystemException,让我来看看
  • 算法训练之动态规划(一)
  • 为什么在Altium原理图中画线会自动链接到附近?
  • Zephyr、FreeRTOS、RT-Thread 定时器区别分析
  • 【Ragflow】14.MinerU解析脚本,接入ragflow知识库
  • Windows 图形显示驱动开发-WDDM 2.0功能_供应和回收更改
  • Seq2Seq - GRU补充讲解
  • DP_AUX辅助通道介绍
  • Testbench设计
  • 起跑有几种起跑方式·棒球1号位
  • 【嵌入式系统设计师】知识点:第11 章 嵌入式系统设计案例分析
  • MQ保证消息幂等
  • (四十一)Dart 中的空安全与 `late` 关键字教程
  • 网络基础-路由技术和交换技术以及其各个协议
  • 每日算法-250409
  • 智能体:重塑未来的智能助手及其在产品设计中的应用
  • 逻辑分析仪怎么用?怎么看PWM(以Saleae为例)​
  • TQTT_KU5P开发板教程---DDR4基于IP核 SDRAM(MIG)的测试