1

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

例子:

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

---->

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

  }
4

1 回答 1

1

没有使用标准 JSP 工具的直接方法。老式的<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在应用程序范围内有类似 a 的东西只是很奇怪......)

对于会话范围,您可以实现HttpSessionListener,对于请求范围,ServletRequestListener. 这种方式只是很笨拙。我真的会考虑一个像样的 MVC 框架。

于 2012-08-05T01:43:43.210 回答