springMVC系列(八)——springMVC参数接收详解

参数接收

springMVC参数传递有一下几种形式:

1.request、response、session传递。

2.参数绑定

3.url动态参数

request、response、session传递

这种和servlet是一样的,request.getAttribute(“”),response.setAttribute(“”)等

参数绑定

http的参数是以key-value的形式传递的, springMVC接收参数是通过方法的形参来接收,而不是通过控制器的类成员来接收。

参数绑定分为这么几种形式

1.基本的java对象参数绑定

2.自定义pojo对象参数绑定

3.参数解析绑定pojo

4集合对象参数(List、Set等)绑定

 

基本的java对象参数绑定

http的参数是以key-value的形式传递的,springMVC会自动绑定key与形参名相同的参数。

1.测试方法

@Test
public void strParam() throwsIOException {
    InputStream is = HttpUtil.doGet(testUrl + "/string?id=1&name=mark");
    String response= StreamUtils.inputStreamToString(is, "UTF-8");
    System.out.println(response);
}
testUrl是项目的url

public static String testUrl = "http://127.0.0.1:8080/study_ssmvc/params";
HttpUtil.doGet是发送http请求的工具方法,在下面的测试方法中也会出现

public class HttpUtil {
    public static InputStream doGet(String urlstr) throws IOException {
       URL url= new URL(urlstr);
       HttpURLConnection conn= (HttpURLConnection) url.openConnection();
       InputStream inputStream= conn.getInputStream();
       return inputStream;
    }
}
StreamUtils.inputStreamToString是将http响应InputStream转成String便于打印输出的工具方法。在下面的测试方法中也会出现。

public class StreamUtils {
    public static String inputStreamToString(InputStreamis, String charset) throws IOException {
       byte[] bytes = new byte[1024];
       int byteLength = 0;
       StringBuffer sb = new StringBuffer();
       while((byteLength = is.read(bytes)) != -1) {
           sb.append(new String(bytes, 0, byteLength, charset));
       }
       return sb.toString();
    }
}

2.Controller

@ResponseBody
@RequestMapping("string")
public String strParam(String id, String name){
    System.out.println("params = id:"+ id + ", name: "+ name);
    TestVovo = new TestVo();
    vo.setId(id);
    vo.setName(name);
    return vo.toString();
}

3.测试通过、响应数据


需要注意一点的是”@ResponseBody”的作用是将java对象转成json字符串,以response.write()形式产生响应。需要导入jackson.jar,或者也可以使用fastjson来序列化json。

使用fastjson的配置

<mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
       <!-- 配置Fastjson支持 -->
       <bean
           class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
           <property name="supportedMediaTypes">
              <list>
                  <value>text/html;charset=UTF-8</value>
                  <value>application/
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值