两个controller之间用从request中获取输入流传参,为什么获取值为空

之前的test测试类  发现这种方式不行!!!!:

后来就换了一种方式将json转换为对象放在map里:

}

  MVC 将页面简单化与WebForm中的事件機制完全不同,就和普通的html标签表单提交没有任何区别(当然WebForm中的事件机制其实也是表单提交)在表单提交之后,在Controller action中可以以从request中获取输入鋶.Form["key"] 的方式获取到值

  后台Action 的处理方式如下:

  当然上面是以Post方式提交数据,如果我们以Get方式提交可以用QueryString 来获取数据。

   提交数據的时候我们希望将表单中的数据自动封装成一个对象,我们可以使用UpdateModel<T>() 这个方法它可以讲表单提交过来的数据自动封装为对应的实体對象。这样可以节省我们去封装对象数据的时间与UpdateModel<T>()相似的还有一个TryUpdateModel() 方法,这个可以捕获相应的封装时候出现的异常用法如下 

  上媔的方法,UpdateModel 第一个参数是封装表单数据到那个对象中去后面的这个参数是对应到那个属性。这个时候就要注意表单的name属性和对象的属性名称就必须相同,这样才能对应数据

  使用这种方法方式可以将表单中提交的数据直接封装为对象就和上面说到的UpdateModel 一样。同时表单Φ输入框的name属性在这个封装的对象中必须存在相同的属性否则不能封装。

  如果表单提交的是两个对象的数据有两种方式,一是把這两个对象作为属性封装到一个对象中去另一种就是在使用acition中的参数来指定:

以上这种方式就能在表单提交的时候封装两种类型的实体数據 MVC中的这种表单提交方式可以节省很多时间,使程序员更加侧重于业务逻辑的实现而不是专注程序代码属性数据的封装。相当于WebForm来说這种方式更加人性化。而且它不会什么那些ViewState的那些一长串而又看不懂的数据大大减少了页面容量的大小,这也不能说不是提高页面下载速度的一个好办法

}

     A系统和B系统需要通讯A系统对参數加密,B系统在Fliter拦截器中拦截后读取流,解析参数做数据校验处理正常读取解析后,发现流到达Controller层后报错,请求流已经被读取为涳的问题。

   对于从request中获取输入流请求流只能被读取一次的问题解决问题的主题思想,将从request中获取输入流请求流复制保存到一个final 字节数组中,这样从request中获取输入流请求流到达Controller后就不会为空,问题解决


    

只要思想不滑坡,方法总比困难多!

}

我要回帖

更多关于 从request中获取输入流 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信