【发布时间】:2011-06-10 00:38:49
【问题描述】:
我想在 spring-mvc 应用程序的自定义标记库中使用 spring-beans。因为TagLib-Instances没有被spring实例化,我不能使用dependnecy-injection。
我的下一个想法是通过拦截器将 spring-context 添加到请求中,并从标记类中的请求中获取它。
有没有更好的方法在 taglibs 中使用 spring?春天有什么可以用的吗?如果 spring-mvc 中还没有 customtag-support,有没有办法用依赖项填充现有对象?
public class MyTag extends TagSupport {
@Autowired
private MyObject object;
public void setMyObject(MyObject myObject) {
this.myObject = myObject;
}
public int doEndTag() {
ApplicationContext context = request.getAttribute("context");
context.populate(this);
return object.doStuff();
}
}
【问题讨论】:
-
我知道你可能不想听到这个,但你为什么要在你的视图中执行需要 Spring bean 的操作?最好的做法是让您的视图尽可能简单。如果您还没有,我会尝试在您的控制器中执行此操作...
-
我同意@Caps。您应该将该代码移至控制器。
标签: java spring-mvc taglib