SpringMVC-03-RestMapping注解, 请求参数的绑定,中文乱码

1.RestMapping注解的参数:
  1. path, value : 作用一样,表示路径,只有一个属性时可以省略。

  2. method:设置请求方法。例如 method={RequestMethod.POST} 表示只接收POST请求。

  3. params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样。
    例如:params ={“accountName”},表示请求参数必须有accountName params ={“moeny!100”},表示请求参数中money不能是100.

  4. headers:用于指定限制请求消息头的条件。

2.请求参数绑定
  1. 在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>
  1. 在controller的方法参数加入对应参数
    如: get链接为 hello?name=tom 则
@RequestMapping("/hello")  
    public String hello(String name) {
        System.out.println("name:"+name);
    }
  1. 参数包含JavaBean时:
    提交的表单name要和JavaBean的属性名保持一致
JavaBean的属性:
private String name;
private Integer age;

表单:
<form action="controller/hello" method="post">
    账号:<input type="text" name="zh"><br/>
    密码:<input type="text" name="password"><br/>
    姓名:<input type="text" name="name"><br/>
    年龄:<input type="text" name="age"><br/>
    <input type="submit" value="submit"><br/>
  </form>
  1. 参数的JavaBean属性包含JavaBean时:
JavaBean的属性:
private String zh;
private String password;
private User user;

User的属性:
private String name;
private Integer age;

表单:
<form action="controller/hello" method="post">
    账号:<input type="text" name="zh"><br/>
    密码:<input type="text" name="password"><br/>
    姓名:<input type="text" name="user.name"><br/>
    年龄:<input type="text" name="user.age"><br/>
    <input type="submit" value="submit"><br/>
  </form>
  1. 参数的JavaBean属性包含集合时:
Person的属性:
    private String kind;
    private List<User> list;
    private Map<String, User> map;

User的属性:
	private String name;
    private Integer age;
表单:
    <form action="controller/hello" method="post">
    种类:<input type="text" name="kind"><br/>

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

    姓名:<input type="text" name="map['a'].name"><br/>
    年龄:<input type="text" name="map['a'].age"><br/>
    <input type="submit" value="submit"><br/>
  </form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值