前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Action接收参数

Action接收参数

作者头像
木瓜煲鸡脚
发布2019-09-29 16:30:30
1.5K0
发布2019-09-29 16:30:30
举报
文章被收录于专栏:Jasper小笔记Jasper小笔记

Action接收参数

  1. 简述
  2. 接收参数
    • 方法一
    • 方法二
    • 方法三
  3. 封装集合
  4. 传递错误

01

简述

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

02

方法一

属性封装

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

03

方法二

表达式封装

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

创建对象

表单传参

Action得到对象

04

方法三

模型驱动的方式

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

ModelDrivern接口

表单传入(name、age)

模板类

action获取

05

封装成集合

封装成列表

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

封装成Map

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

06

接收参数错误

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

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

原理

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT那个小笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档