我想在 spring-mvc 应用程序的自定义标签库中使用 spring-beans。因为 TagLib-Instances 没有被 spring 实例化,我不能使用依赖注入(inject)。
我的下一个想法是通过拦截器将 spring-context 添加到请求中,并从标记类中的请求中获取它。
有没有更好的方法在 taglibs 中使用 spring? 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 启动的字段声明为静态的,并让启动一个标签实例
public class MyTag extends TagSupport {
private static MyObject myObject;
@Autowired
public void setMyObject(MyObject myObject) {
MyTag.myObject = myObject;
}
public int doEndTag() {
return object.doStuff();
}
关于java - Spring MVC 和自定义标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4706259/