1个回答
展开全部
当一个select标签设置成多选后(就是你写的这种),没有一个option被选中的时候就相当于没有这个select标签,不会提交到后台,就相当于form表单中根本就没有这个select,而大多数情况下我们想要的结果是,当没有选上这个select的时候也有这个参数(你这里的roles)。
所以struts2标签会自动给你加一个__multiselect_roles,当你没有选中时,也会提交到后台,后台struts2的MultiselectInterceptor拦截器(它在默认拦截器栈中)会自动帮你处理。
与此类似的还有checkbox,同样对应一个CheckboxInterceptor会帮你处理。
所以struts2标签会自动给你加一个__multiselect_roles,当你没有选中时,也会提交到后台,后台struts2的MultiselectInterceptor拦截器(它在默认拦截器栈中)会自动帮你处理。
与此类似的还有checkbox,同样对应一个CheckboxInterceptor会帮你处理。
更多追问追答
追问
可是我有选的 那后面跟的roles=&roles=就是我选的 为什么还会有这个__multiselect_roles参数被提交呢 action中没定义这个属性 会报错
追答
你的这个报错可能和这个select没有关系,你没给出代码,我也看不出哪里错了,像你这种多选,应该在action里定义一个数组变量来接收这个roles。
如果你的id是int型的,你要用public int[] roles;来接收
如果你有选,拦截器会处理的这个__multiselect_roles,你不用担心你的action中没有这个属性
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询