JSF渲染无法正常工作

时间:2013-03-03 13:58:59

标签: jsf jsf-2

f:view <f:view rendered="#{p.statusmsg!=null}"><f:view rendered="#{p.picstatus!=null}"><f:view rendered="#{p.videostatus!=null}">内的所有内容都会被执行,无论statusmsg,picstatus或videostatus的值是否为null

1)getMoreStatusUpdate.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core">

<h:head></h:head>
<h:body>
   <div id="content">
      <h:form>
         <ui:repeat var="p" value="#{statusBean.moreStatusList}">                   
            <f:view rendered="#{p.statusmsg!=null}">
            //Status content    
            </f:view>
            <f:view rendered="#{p.picstatus != null}"> 
            //Picture Status Content                            
            </f:view>  
            <f:view rendered="#{p.videostatus != null}">
            //Video Status Content
            </f:view>                   
         </ui:repeat>
      </h:form>
   </div>
</h:body>

1 个答案:

答案 0 :(得分:4)

<f:view> doesn't具有rendered属性。

此属性仅在基于UIComponent的代码上受支持,该代码是h: library的所有代码和ui:库中的一些代码,包括<ui:fragment>

只需将<f:view>替换为<ui:fragment>

另见: