Action接收参数

#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>> hot3.png

Action接收参数




  1. 简述

  2. 接收参数

  • 方法一

  • 方法二

  • 方法三

封装集合

传递错误





0 1 简述


请求的各种信息参数都是在request对象中,不使用Servlet原生API怎么获取参数呢,Struts2中提供了三种方式(当然原理他还是通过request)



0 2 方法一


属性封装


直接在Action类中定义与url传入的参数相对应的变量,并设置上set方法,当此url代参数请求后,Action类中对应的变量也就得到了参数的值,这种方法只是在参数少的时候使用并且不能自动封装,当参数多时你需要把这些参数封装在一个对象时需要自己手动去做


5443f30202e102406441c7f7b9f3b1e5802.jpg520fa950b2e5374b9013168be500ae26916.jpg9ecb3c87482620ce3a85b3fe33ae76e9e33.png



03 方法二


表达式封装


创建若干参数形成的对象,Action中直接获取到对象,参数名为“对象名.属性名”对象名对应Action中的,也是需要设置上set方法因为它内部是用反射来获取的。它会自动把名为student.name和student.age的两个参数封装在student对象中并通过点后的字符来匹配对应的类中属性


创建对象


569024587bb36d8aed46835251896434cf6.png


表单传参


e382a9332e5763206bff6b83cd2fc8ad5e6.jpg


Action得到对象

f55adc5e9ca2e19ab5c7963e9488f96dd2f.png



04 方法三


模型驱动的方式


需要实现ModelDrivern接口并覆盖getModel方法,需要手动开辟一个对象给它,它去把参数封装在此对象再返回



ModelDrivern接口


f18218a5fc9ab2b172f5016162767b89b84.png


表单传入(name、age)

74130e776c49dc8ca82f73120fea14d8dc9.png



模板类


da76df0fbeb8ec7f94e00764940ceae2bfc.png


action获取

dd2c00dfbb13afb89d1264bd684059318d2.png




05 封装成集合


封装成列表


通过中括号中的数字来确定是集合中哪个元素(对象),最后再封装在元素中。中括号中就是集合元素的角标。像下面提交后集合会有3个元素第一个也就是角标为0的没有值为空


2ad3bbccd495fa77a3d5a7f9d902c291afa.png

ffc8d1b72558d13dcf177b65fec24e63f41.png



封装成Map


在中括号的地方自定义key即可


c1f669deda86df9dec98704a0028b46f03d.jpg

1ce13691cb09a91bf661edcd705be17f4c6.png




06 接收参数错误


在页面中所有参数值都是字符串的显示,Struts会去自动转化类型。但当你在浏览器提交的参数值与模板类的类型转化不了就会出错,并返回input


下面由于student类中定义的age是Integer类型,传入a这样的字符无法转为整型所以出错,返回input。结果页没有配置input所以出现未找到



90306d91ce52e955c470bb25dd435eb6126.pngc43ffafe45c7e32216eea20898a1b7bf493.pngf802b89785ede10557a66653b28ac729dfa.png



原理


在struts-default.xml中配置了很多拦截器,只要拦截器中处理出现问题错误信息就会存在错误信息区,直到最后workflow回去检错误信息区有没有内容如果有就返回input,可以区配置一下input结果页。出错时跳转到相应的页面


4a1dfaf670d024e4ea493cdc532d9a7f83c.png

e062c6262bd6b15a0b8e2096f4ab9de0282.jpg21dea42ea386ec3e1f5d1ab5b12ea63bdce.jpg




本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

posted @ 2019-09-28 08:53  木瓜煲鸡脚  阅读(70)  评论(0)    收藏  举报