使用 Acegi 保护 Java 应用程序,第 5 部分: 保护 JSF 应用程序中的 JavaBean
2010-03-18 00:00:00 来源:WEB开发网除此之外,还能够直接在 JSF 页面中使用 IOC bean,如 清单 7 中的 JSF 页面所示:
清单 7. 直接在 JSF 页面中使用 IOC bean
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
<title>JSF Acegi simple method security application: TEST PAGE</title>
</head>
<body>
<f:view>
<h2>
<h:outputText value="Protected Resource 1:"/>
</h2>
</br>
<h3>
<h:outputText value="#{publicCatalog.data}"/>
</br>
<h:outputText value="#{privateCatalog.data}"/>
</h3>
</f:view>
</body>
</html>
清单 7 与 清单 2 中的 JSF 页面类似。惟一的区别在于 <outputText> 标签的 value 属性。在 清单 2 中,value 属性引用 catalog,后者是一个 JSF 托管 bean。在 清单 7 中,value 属性直接引用 IOC bean(即 publicCatalog 和 privateCatalog)。这意味着当用户访问 清单 7 的 JSF 页面时,JSF 直接用 Spring 的 DelegatingVariableResolver 解析 Acegi IOC。
请注意,为了解析 JSF 页面中使用的 IOC bean, DelegatingVariableResolver 的工作方式与我在讨论 图 1 时说明的方式相同。
图 2 演示了用户访问 清单 7 中的 JSF 页面时发生的事件顺序。
更多精彩
赞助商链接