0

我正在使用 spring portlet mvc 和 liferay。我需要知道是否有一种方法可以在所有 @ModelAttribute 注释之前调用方法(类似于 init 方法)。我需要这个,因为我在所有 @ModelAttribute 方法中使用从 db 检索的对象来从对象中提取属性子集。我正在使用请求参数发送数据库中行的 pk-id。我不想在上面注释的所有方法中重新检索对象(这会减慢渲染速度,因为我正在与 db 进行多个连接以检索相同的对象,我可以在一个类似 init 的方法,应该在任何渲染/操作请求之前调用)。我试过@PostConstruct,但它给我一个异常,显然这不是解决方案。我不

谢谢!

4

1 回答 1

0

编辑:

好的,所以如果您需要在 @(Action/Request) 映射之前调用方法,您可以使用Spring MVC 框架中的拦截器。

这个链接可能有用。


不直接回答您的问题,但我建议创建一个服务以从数据库中检索对象,然后将该服务注入到 portlet 中:

@Autowired ServiceDao serviceDao

这样您就可以将数据库访问层与视图层分开(控制器不应直接查询数据库)。

然后为了解决您的问题,您可以发布一些代码吗?如果您每个人都@ModelAttribute需要来自 BD 的一些对象,例如,您可以检索它一次,然后将其缓存在您的服务中。

Spring Portlet MVC 注释上的一些资源可能有用。

于 2013-01-24T21:44:05.043 回答