Struts2:在调用getModel()之前从请求中获取id

Struts2:在调用getModel()之前从请求中获取id,struts2,model-driven,Struts2,Model Driven,我在将Struts2从2.3.1升级到2.3.15后遇到了这个问题 在我的操作中,我使用ModelDriven接口来填充bean。在请求中,我还传递标识会话中对象的参数id。Id参数不是bean的一部分。为了在getModel()之前填充操作中的id字段,我在其他拦截器前面使用了“params”拦截器。 在Struts 2.3.15中,我从参数Sinterceptor中得到了很多错误-找不到任何setter。它为所有应该设置我的bean字段的字段抛出错误。 处理这种情况的正确方法是什么?取决于几

我在将Struts2从2.3.1升级到2.3.15后遇到了这个问题 在我的操作中,我使用ModelDriven接口来填充bean。在请求中,我还传递标识会话中对象的参数id。Id参数不是bean的一部分。为了在getModel()之前填充操作中的id字段,我在其他拦截器前面使用了“params”拦截器。 在Struts 2.3.15中,我从参数Sinterceptor中得到了很多错误-找不到任何setter。它为所有应该设置我的bean字段的字段抛出错误。
处理这种情况的正确方法是什么?

取决于几个因素。您没有提供足够的代码来确保。答案可能包括自定义拦截器、更改现有拦截器配置,或者如果您仅在几个位置执行此操作,甚至使用请求感知并在prepare()或execute()中手动处理id方面。参数2.3.15之前的拦截器存在错误-所有这些错误都应该仅在
devMode
中可见,对于2.3.16,在这方面有了更多的改进。下面是我的代码:用于填充id字段的拦截器参数。action类中的方法getModel()根据id从会话返回对象。它仍然可以按照2.3.15中的预期工作,但也会记录错误。