我想将JSP useBean taglib实现为类注释...可能吗?如果是这样,最好的(简单有效)方法是什么?
示例:
<jsp:useBean id="p" class="beans.Person" scope="application"></jsp:useBean>
----&GT;
//Custom annotation goes here...
@ManagedBean
public class Bean {
}
答案 0 :(得分:1)
使用标准JSP工具没有直接的方法。 oldschool <jsp:useBean>
方法也远离MVC,因为没有控制器的手段。只需选择一个支持JSP作为View的现有MVC框架,例如Spring MVC,JSF等(尽管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框架。