SpringMVC_02_请求参数绑定与自定义数据类型转换器

请求参数绑定

方式一:在请求路径上加上参数

<%--请求参数绑定--%>
<a href="param/testParam?username=hyc&password=123">请求参数绑定</a>

控制类中的方法上传递路径的参数,要求名字相同。

@RequestMapping("/testParam")
    public String testParam(String username,String password){
        System.out.println("执行了...");
        System.out.println("用户名为:"+username);
        System.out.println("密码为:"+password);

        return "success";
    }

方式二:参数封装到实体类

<form action="param/saveAccount" method="post">

        姓名:<input type="text" name="username"><br>
        密码:<input type="text" name="password"><br>
        金额:<input type="text" name="money"><br>
        用户姓名:<input type="text" name="user.uname"><br>
        用户年龄:<input type="text" name="user.age"><br>

        <input type="submit" value="提交">

    </form>

新建一个JavaBean类Account还有User类,JavaBean类中的属性名称要与input框name相同。
Account类:

private String username;
private String password;
private Double money;
private User user;

User类:

private String uname;
private Integer age;

解决中文乱码问题:在web.xml中配置中文乱码过滤器

<!--配置解决中文乱码过滤器-->
  <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>

封装集合

<form action="param/saveAccount" method="post">

        姓名:<input type="text" name="username"><br>
        密码:<input type="text" name="password"><br>
        金额:<input type="text" name="money"><br>

        用户姓名:<input type="text" name="list[0].uname"><br>
        用户年龄:<input type="text" name="list[0].age"><br>

        用户姓名:<input type="text" name="map['one'].uname"><br>
        用户年龄:<input type="text" name="map['one'].age"><br>

        <input type="submit" value="提交">

    </form>

泛型为User的list和map

private String username;
    private String password;
    private Double money;
    /*private User user;*/
    private List<User> list;
    private Map<String,User> map;

自定义类型转换器

新建一个工具类 StringToDateConverter继承自 Converter<String, 要转换成的类型>

/**
     *
     * @param s 传入的字符串
     * @return
     */
    @Override
    public Date convert(String s) {
        //判断
        if(s==null){
            throw new RuntimeException("请您输入数据");
        }
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return df.parse(s);
        } catch (Exception e) {
            throw new RuntimeException("数据类型转换出错");
        }

    }

在springMVC中添加自定义类型转换器的组件

<!--配置自定义类型转换器-->
    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="cn.utils.StringToDateConverter"></bean>
            </set>
        </property>
    </bean>

    <!--开启springMVC注解支持-->
    <mvc:annotation-driven conversion-service="conversionService"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值