JSF标记与JSTL标记如何混合使用

这篇文章主要为大家展示了“JSF标记与JSTL标记如何混合使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JSF标记与JSTL标记如何混合使用”这篇文章吧。

所有谈到的JSF定制标记库都是不错的,但是,如果我有自己的定制标记,或有第三方的标记库应该怎么办?或者我要使用JSP标准标记库 (JSTL)?它是一组能做我们刚提到的所有事情的标记库。在极大程度上,这些标记能与JSF标记混合使用。 Faces标记能在其它标记的内部嵌套使用,反之亦然。 一些产品,象IBM的 WebSphere Application Developer, 鼓励这种方法。其它的如 Sun的 Java Creator Studio则选择纯的JSF标记,另一方面,Oracle的 JDeveloper 让你混合和配合使用,但也鼓励使用纯JSF标记。

注意: 无论何时,你将JSF 标记嵌套在非JSF定制标记内时,你必须分派一个组件标识符到JSF 标记。 因为JSTL 是标准的并且许多人熟悉它,我们将用它示范如何将它与 JSF定制标记一起使用。 (如果你想全面了解JSTL, 请看 Shawn Bayern写的一本极好的书, JSTL in Action.) 让我们从简单的例子开始 JSTL 标记和 JSF 标记混合和配合使用。代码引入了两个 JSF 标记库和核心 JSTL 标记库。

JSTL 标记与 JSF 标记混合使用
代码内容

  1. <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 

  2. <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 

  3. <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> 

  4. <html> 

  5. <head> 

  6. <title>JSF in Action: JSTL Example 1 – Mixing JSF with other custom tags</title> 

  7. </head> 

  8. <body bgcolor="#FFFFFF"> 

  9. <f:view> 

  10. <h2> 

  11. <h:outputText value="Example of using JSF tags with other custom tags"/> 

  12. </h2> 

  13. <p> 

  14. <b> 

  15. <c:out value="Here’s the value of your web.xml (don’t do this at home):"/> 

  16. </b> 

  17. <blockquote> 

  18. <f:verbatim> 

  19. <c:import url="WEB-INF/web.xml"/> 

  20. </f:verbatim> 

  21. </blockquote> 

  22. </p> 

  23. </f:view> 

  24. </body> 

  25. </html></code>  

在这个例子里, JSTL 和JSF 标记嵌套在 JSF标记 <f:view>内, <f:view>定义了JSF组件树的开始。这个例子使用了 JSF 的h标记 (<h:outputText>) 和JSTL <c:out> 标记显示文本。 在这个页面内,JSTL <c:import> 标记包含系统的 web.xml 文件 (这不是你想与其它人共享文件的正确方法,所以,不要在一台真实的服务器上这样做). 因为 web.xml 是一个XML 文件, <c:import>标记要嵌套在<f:verbatim> 内, <f:verbatim>是一个 JSF UIOutput组件并且绘制时转义XML元素,所以能在HTML页内正确显示。这个例子没有太多的内容,但它示范了在同一页面内不同的标记能一起使用。注意我们把JSTL 标记嵌套在 JSF <f:verbatim> 标记内,一般而言,它比将 JSF 标记嵌套在其它标记内容易。事实上,任何有子组件的组件如 HtmlDataTable和 HtmlPanelGrid需要将模板文本嵌套在一个<f:verbatim> 标记内。 JSTL 标记与 JSF 标记一起使用使JSF变得更强大,这两者都使用类似的表达式语言。 (对 JSP 2.0’s 表达式也是如此l). 这允许你以一种直观的方式在JSTL 和 JSF 标记间共享数据。 这里举例说明这一点,让我们看另一个例子, 它允许用户在 HtmlInputText 控件中输入一个值,然后利用这个值用 JSTL <c:forEach>标记重复输出一个字符串。

JSF 、JSTL 标记和同一个 backing bean
代码内容

  1. <f:view> 

  2. <jsp:useBean class="org.jia.examples.TestForm" id="exampleBean" scope="session"/> 

  3. <h2> 

  4. <h:outputText value="Example of using JSF and JSTL expression languages"/> 

  5. </h2> 

  6. <h:form> 

  7. <h:outputLabel for="inputInt"> 

  8. <h:outputText value="How many times do you want to repeat the Oracle’s prophecy?"/> 

  9. </h:outputLabel> 

  10. <h:inputText id="inputInt" value="#{sessionScope.exampleBean.number}"/> 

  11. <h:commandButton value="Go!"/> 

  12. <p> 

  13. <c:if test="${sessionScope.exampleBean.number > 0}"> 

  14. <c:forEach begin="0" end="${sessionScope.exampleBean.number – 1}" var="count"> 

  15. Queen Tracey will achieve world domination.<br> 

  16. </c:forEach> 

  17. </c:if> 

  18. </p> 

  19. </h:form> 

  20. …  

  21. </f:view> 

  22. …  

以上是“JSF标记与JSTL标记如何混合使用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/208582.html

(0)
上一篇 2021年12月7日
下一篇 2021年12月7日

相关推荐

发表回复

登录后才能评论