f:verbatim标签的实践用法(Myfaces)

官方文档中廖廖几笔:Outputs its body as verbatim text. No JSP tags within the verbatim tag (including JSF tags) are evaluated; the content is treated simply as literal text to be copied to the response. Unless otherwise specified, all attributes accept static values or EL expressions.

简单说来就是,标签里包含什么,就在网页上输出什么!!!最近在项目中看到<f:verbatim>被滥用(新手常范),特此把实践中的经验跟大家分享一下 :)

需要在JSF标签(如:dataTable,dataScrollor等)中,包含非JSF内容(如:HTML标签,普通文本)时,必须用<f:verbatim>包含这些非JSF内容。有人会问:<f:verbatim>标签必须包含在<f:view>内,按照上面所说,<f:view>标签中的内容都要放到<f:verbatim>中了,实践表明不是这样的。看下面的例子(只为说明问题):

Copy code
<%@ page language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta. http-equiv="Content-Type" content="text/html; charset=utf-8" />
<%@ include file="/inc/header.jspf" %>
</head>

<body>
<f:view>
<%@ include file="/inc/menu.jspf" %>
<table class="head">
  <tr>
    <td>欢迎体验“投票管理系统”</td>
  </tr>
</table>
<table class="content">
  <h:form>
  <tr>
    <td valign="top">
    <table>
      <tr>
        <td>请选择:</td>
      </tr>
    </table>
<t:dataTable newspaperColumns="2"id="data" value="#{voteQuestionHandler.demandAuditedDataModel}" var="voteQuestion"
            preserveDataModel="false"
              rows="#{pagerHandler.pagerVO.rows}"
              columnClasses="tdColumn"
              rowClasses="tdRow" styleClass="data"
              forceIdIndexFormula="#{voteQuestion.id}">
            <t:column>
                <f:verbatim><li /></f:verbatim>
            <t:commandLink value="#{voteQuestion.question}" action="goToVote" target="_blank">
                <t:updateActionListener value="#{voteQuestion}" property="#{voteItemHandler.voteQuestionVO}" />
                </t:commandLink>
          </t:column>
        </t:dataTable>
        <%@ include file="/inc/pager.jspf" %>
   
    </td>
  </tr>
  </h:form>
</table>
</f:view>
<%@ include file="/inc/footer.jspf" %>
</body>
</html>

另外,在包含文件(<%@ include...)中,有时是需要<f:verbatim>和<f:subview>标签的,如果你的包含文件不能很好的工作的话,可以试一下!!!由于Myfaces1.1.1之后版本的升级,要求表单标签(如:<h:inputText>)必须要包含在<h:form>标签内,可能<f:view><h:form>这样的写法是最省事的了!!!

<!--[if !supportEmptyParas]--> <!--[endif]-->

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值