是否可以将JSP usebean实现为注释?

时间:2012-08-05 01:31:47

标签: java jsp annotations javabeans

我想将JSP useBean taglib实现为类注释...可能吗?如果是这样,最好的(简单有效)方法是什么?

示例:

  <jsp:useBean id="p" class="beans.Person" scope="application"></jsp:useBean>

----&GT;

  //Custom annotation goes here...
  @ManagedBean
  public class Bean {

  }

1 个答案:

答案 0 :(得分:1)

使用标准JSP工具没有直接的方法。 oldschool <jsp:useBean>方法也远离MVC,因为没有控制器的手段。只需选择一个支持JSP作为View的现有MVC框架,例如Spring MVCJSF等(尽管JSF使用自2.0版JSP的后继Facelets作为默认的View技术)并使用其托管bean工具。现代MVC框架支持注释。

在这种特殊情况下,对于应用程序范围的bean,使用注释而不需要MVC框架的完全不同的替代方法是使用带有ServletContextListener注释的@WebListener

@WebListener
public void Config implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        event.getServletContext().setAttribute("p", new Person());
    }

    // ...
}

(虽然在应用程序范围内使用Person之类的内容非常奇怪...)

对于会话范围,您可以实现HttpSessionListener,并为请求范围ServletRequestListener。这种方式只是非常笨拙。我真的考虑一个体面的MVC框架。