为什么我们需要Struts2中的Preparable接口?

时间:2012-02-14 08:50:32

标签: java model-view-controller java-ee struts2 interceptor

我们有拦截器,我们有自定义拦截器,我们可以在执行动作之前或之后完成我们想要做的所有事情。
那么有什么需要使用Preparable接口并实现它的准备方法呢? 这是另一种选择还是有一些特定的目标可以做到这一点?

2 个答案:

答案 0 :(得分:8)

Well Preparable接口与Prepare Interceptor一起使用。此接口有一个定义的方法prepare(),并且正如其名称所示,此方法负责允许该操作自行准备。

为实现Preparable的操作准备拦截器调用prepare()。这个拦截器对于你需要确保在实际的execute方法运行之前运行某些逻辑的任何情况非常有用。所以如果你看到这是某种类型,如果init为你的动作类,它确保在Action执行之前或者调用任何其他方法,此方法使您的execute方法正常工作。

如果您在核心中看到default-stack定义,您将会知道在params或工作流拦截器之前调用此拦截器来指示其目的。

这种情况的一个典型用法是运行一些逻辑来从数据库加载对象,以便在设置参数时可以在此对象上设置它们。有关详细信息,请阅读准备拦截器的文档,了解它如何与Preparable接口紧密配合。简而言之,准备拦截器只有在动作实现Preparable时才会起作用。

Prepare-Interceptor

答案 1 :(得分:0)

准备界面确保如果正在使用的对象已经在值堆栈上,则无需查询数据库,它使用值堆栈上的现有对象填充表单属性。

相关问题