您的位置:首页 > 编程语言 > Java开发

struts中在Action里写了setter方法接受不到参数

2017-03-03 18:09 351 查看
先贴一篇在网上找到的资料。

我用了

<s:select name="currentStatus" list="#{'审批中':'审批中','未通过':'未通过','已通过':'已通过'}"></s:select>

发到的action中有

currentStatus的getter 和setter,

但是action就是接收不到值,而且也不调用currentStatus的getter 和setter方法

后来我发现

这个action我还用了implements ModelDriven

getModel()方法里返回的是Application,这个类里面有currentStatus,原来和属性冲突了,估计是model拦截器在parameter拦截器的前面,

查了一下defaultStack

<interceptor-stack name="defaultStack">

<interceptor-ref name="exception"/>

<interceptor-ref name="alias"/>

<interceptor-ref name="servletConfig"/>

<interceptor-ref name="i18n"/>

<interceptor-ref name="prepare"/>

<interceptor-ref name="chain"/>

<interceptor-ref name="scopedModelDriven"/>

<interceptor-ref name="modelDriven"/>

<interceptor-ref name="fileUpload"/>

<interceptor-ref name="checkbox"/>

<interceptor-ref name="multiselect"/>

<interceptor-ref name="staticParams"/>

<interceptor-ref name="actionMappingParams"/>

<interceptor-ref name="params">

果然先被modelDriven拦截器拦截到了


我遇到的情况与此类似,然而我利用

ServletActionContext.getContext().getParameters("cid")


却可以接受到参数。如同上面博文所说,我删除了getModel()方法返回的Product类中的cid属性就可以接受cid参数了。具体原理还是没看懂。

4000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息