1 Reply Latest reply: Dec 11, 2007 10:34 AM by Paula RSS

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

Paula Newbie

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.