struts2 在提交下拉列表<可选多行>值时 为什么会多出一个参数__multiselect_roles

IE地址栏显示struts2标签异常... IE地址栏显示

struts2标签

异常
展开
 我来答
百度网友a3f96c4
2014-04-17 · 超过25用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:52.9万
展开全部
当一个select标签设置成多选后(就是你写的这种),没有一个option被选中的时候就相当于没有这个select标签,不会提交到后台,就相当于form表单中根本就没有这个select,而大多数情况下我们想要的结果是,当没有选上这个select的时候也有这个参数(你这里的roles)。

所以struts2标签会自动给你加一个__multiselect_roles,当你没有选中时,也会提交到后台,后台struts2的MultiselectInterceptor拦截器(它在默认拦截器栈中)会自动帮你处理。

与此类似的还有checkbox,同样对应一个CheckboxInterceptor会帮你处理。
更多追问追答
追问
可是我有选的   那后面跟的roles=&roles=就是我选的   为什么还会有这个__multiselect_roles参数被提交呢  action中没定义这个属性   会报错
追答
你的这个报错可能和这个select没有关系,你没给出代码,我也看不出哪里错了,像你这种多选,应该在action里定义一个数组变量来接收这个roles。
如果你的id是int型的,你要用public int[] roles;来接收
如果你有选,拦截器会处理的这个__multiselect_roles,你不用担心你的action中没有这个属性
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式