千家信息网

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

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要为大家展示了"JSF标记与JSTL标记如何混合使用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"JSF标记与JSTL标记如何混合使用"这篇文章
千家信息网最后更新 2025年02月01日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 tagstitle>

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

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标记如何混合使用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0