1 Reply Latest reply on Dec 11, 2007 10:34 AM by paulaunderwood

    The prefix "f" for element "f:param" is not bound

    paulaunderwood

      I have this page... joborderlist.xhtml

      <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      
      <ui:composition xmlns="http://www.w3.org/1999/xhtml"
       xmlns:s="http://jboss.com/products/seam/taglib"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:rich="http://richfaces.ajax4jsf.org/rich"
       template="layout/template.xhtml">
      
      <ui:define name="body">
      
       <h:messages globalOnly="true" styleClass="message" id="globalMessages"/>
      
       <h:form id="joborderSearch" styleClass="edit">
      
       <rich:simpleTogglePanel label="Job Order Search Parameters" switchType="ajax">
      
       <s:decorate template="layout/display.xhtml">
       <ui:define name="label">Title</ui:define>
       <h:inputText id="title" value="#{joborderList.joborder.title}"/>
       </s:decorate>
      
       <s:decorate template="layout/display.xhtml">
       <ui:define name="label">Description</ui:define>
       <h:inputText id="description" value="#{joborderList.joborder.description}"/>
       </s:decorate>
      
       <div class="actionButtons">
       <h:commandButton id="search" value="Search" action="/joborderlist.xhtml"/>
       </div>
      
       </rich:simpleTogglePanel>
      
      
      
       </h:form>
      
       <rich:panel>
       <f:facet name="header">Job Order Search Results</f:facet>
       <div class="results" id="joborderList">
      
       <h:outputText value="No job order exists"
       rendered="#{empty joborderList.resultList}"/>
      
       <rich:dataTable id="joborderList"
       var="joborder"
       value="#{joborderList.resultList}"
       rendered="#{not empty joborderList.resultList}">
       <h:column>
       <f:facet name="header">
       <s:link styleClass="columnHeader"
       value="Title #{joborderList.order=='title asc' ? messages.down : ( joborderList.order=='title desc' ? messages.up : '' )}">
       <f:param name="order" value="#{joborderList.order=='title asc' ? 'title desc' : 'title asc'}"/>
       </s:link>
       </f:facet>
       #{joborder.title}
       </h:column>
       <h:column>
       <f:facet name="header">
       <s:link styleClass="columnHeader"
       value="Description #{joborderList.order=='description asc' ? messages.down : ( joborderList.order=='description desc' ? messages.up : '' )}">
       <f:param name="order" value="#{joborderList.order=='description asc' ? 'description desc' : 'description asc'}"/>
       </s:link>
       </f:facet>
       #{joborder.description}
       </h:column>
       <h:column rendered="#{s:hasRole('user') or s:hasRole('admin')}">
       <f:facet name="header">
       <s:link styleClass="columnHeader"
       value="NAICS #{joborderList.order=='naics asc' ? messages.down : ( joborderList.order=='naics desc' ? messages.up : '' )}">
       <f:param name="order" value="#{joborderList.order=='naics asc' ? 'naics desc' : 'naics asc'}"/>
       </s:link>
       </f:facet>
       #{joborder.naics}
       </h:column>
       <h:column rendered="#{s:hasRole('user') or s:hasRole('admin')}">
       <f:facet name="header">
       <s:link styleClass="columnHeader"
       value="Opening #{joborderList.order=='opening asc' ? messages.down : ( joborderList.order=='opening desc' ? messages.up : '' )}">
       <f:param name="order" value="#{joborderList.order=='opening asc' ? 'opening desc' : 'opening asc'}"/>
       </s:link>
       </f:facet>
       #{joborder.opening}
       </h:column>
       <h:column rendered="#{s:hasRole('user') or s:hasRole('admin')}">
       <f:facet name="header">
       <s:link styleClass="columnHeader"
       value="RefReq #{joborderList.order=='refreq asc' ? messages.down : ( joborderList.order=='refreq desc' ? messages.up : '' )}">
       <f:param name="order" value="#{joborderList.order=='refreq asc' ? 'refreq desc' : 'refreq asc'}"/>
       </s:link>
       </f:facet>
       #{joborder.refreq}
       </h:column>
       <h:column>
       <f:facet name="header">
       <s:link styleClass="columnHeader"
       value="Employer #{joborderList.order=='employer.name asc' ? messages.down : ( joborderList.order=='employer.name desc' ? messages.up : '' )}">
       <f:param name="order" value="#{joborderList.order=='employer.name asc' ? 'employer.name desc' : 'employer.name asc'}"/>
       </s:link>
       </f:facet>
       #{joborder.employer.name}
       </h:column>
       <h:column rendered="#{s:hasRole('participant')}">
       <f:facet name="header">
       <s:link styleClass="columnHeader"
       value="Address #{joborderList.order=='employer.address asc' ? messages.down : ( joborderList.order=='employer.address desc' ? messages.up : '' )}">
       <f:param name="order" value="#{joborderList.order=='employer.address asc' ? 'employer.address desc' : 'employer.address asc'}"/>
       </s:link>
       </f:facet>
       #{joborder.employer.address}
       </h:column>
       <h:column>
       <f:facet name="header">
       <s:link styleClass="columnHeader"
       value="Zip Code #{joborderList.order=='zid asc' ? messages.down : ( joborderList.order=='zid desc' ? messages.up : '' )}">
       <f:param name="order" value="#{joborderList.order=='zid asc' ? 'zid desc' : 'zid asc'}"/>
       </s:link>
       </f:facet>
       #{joborder.zid}
       </h:column>
       <h:column>
       <f:facet name="header">Action</f:facet>
       <s:button view="/joborder.xhtml"
       value="Edit"
       id="joborder"
       rendered="#{s:hasRole('user') or s:hasRole('admin')}">
       <f:param name="joborderJid"
       value="#{joborder.jid}"/>
       </s:button>
       <s:button id="deleteJoborder"
       value="Delete"
       view="/joborderlist.xhtml"
       action="#{joborderHome.remove}"
       onclick="if (! window.confirm('Delete #{joborder.description}?')) { return false };"
       rendered="#{s:hasRole('user') or s:hasRole('admin')}">
       <f:param name="joborderJid" value="#{joborder.jid}"/>
       </s:button>
       <s:button view="/jobview.xhtml"
       value="View"
       id="jobview"
       rendered="#{s:hasRole('participant')}">
       <f:param name="joborderJid"
       value="#{joborder.jid}"/>
       </s:button>
       </h:column>
       </rich:dataTable>
      
       </div>
       </rich:panel>
      
       <div class="tableControl">
      
       <s:link view="/joborderlist.xhtml"
       rendered="#{joborderList.previousExists}"
       value="#{messages.left}#{messages.left} First Page"
       id="firstPage">
       <f:param name="firstResult" value="0"/>
       </s:link>
      
       <s:link view="/joborderlist.xhtml"
       rendered="#{joborderList.previousExists}"
       value="#{messages.left} Previous Page"
       id="previousPage">
       <f:param name="firstResult"
       value="#{joborderList.previousFirstResult}"/>
       </s:link>
      
       <s:link view="/joborderlist.xhtml"
       rendered="#{joborderList.nextExists}"
       value="Next Page #{messages.right}"
       id="nextPage">
       <f:param name="firstResult"
       value="#{joborderList.nextFirstResult}"/>
       </s:link>
      
       <s:link view="/joborderlist.xhtml"
       rendered="#{joborderList.nextExists}"
       value="Last Page #{messages.right}#{messages.right}"
       id="lastPage">
       <f:param name="firstResult"
       value="#{joborderList.lastFirstResult}"/>
       </s:link>
      
       </div>
      
      </ui:define>
      
      </ui:composition>
      


      It works fine when a person who is a user or a admin logs in, but not when a participant is logged in..

      The page was display correctly before I created the jobview.xhtml page and its jobview.page.xml, which this button leads to

      </s:button>
       <s:button view="/jobview.xhtml"
       value="View"
       id="jobview"
       rendered="#{s:hasRole('participant')}">
       <f:param name="joborderJid"
       value="#{joborder.jid}"/>
       </s:button>
      


      After I created those two files.. I get this error when I try to load joborderlist.xhtml logged in as a participant..

      org.dom4j.DocumentException: Error on line 7 of document : The prefix "f" for element "f:param" is not bound. Nested exception: The prefix "f" for element "f:param" is not bound.