a4j:commandLink not working
altar Jun 11, 2013 10:03 AMI have richfaces version 4.3.2 running in JBOSS 7.1.1
a4j:commandButton does work
But I can't make a4j:commandLink to work
the IE browser indicates a page error
jsf:ajax is null or is not an object
my files :
WEB.XML
------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<description>iDigital.pedPagamento</description>
<context-param>
<param-name>org.richfaces.skin</param-name>
<param-value>wine</param-value>
</context-param>
<context-param>
<description>Nome da aplicacao</description>
<param-name>NOME</param-name>
<param-value>iDigital.pedPagamento</param-value>
</context-param>
<context-param>
<description>Versao da aplicacao que se encontra no ambiente</description>
<param-name>VERSAO</param-name>
<param-value>@VERSAO@</param-value>
</context-param>
<context-param>
<description>Prefixo do ambiente em que a aplicacao esta a correr</description>
<param-name>PREFIXO_AMBIENTE</param-name>
<param-value>@PREFIXO_AMBIENTE@</param-value>
</context-param>
<context-param>
<description>Email de suporte da aplicacao</description>
<param-name>EMAIL_SUPORTE</param-name>
<param-value>desenv-icand@ifap.pt</param-value>
</context-param>
<context-param>
<description>URL do Report Servlet</description>
<param-name>REPORT_SERVLET_URL</param-name>
<param-value>http://dsv.aplj.ifap.local/iDigital.controloAnexos/ReportServlet</param-value>
</context-param>
<context-param>
<description>SID da Base de dados em que a aplica??o est? a correr</description>
<param-name>SID_BASE_DADOS</param-name>
<param-value>BDOIDIG</param-value>
</context-param>
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>pt.ifap.infra.web.filters.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>15</session-timeout>
</session-config>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
<mime-mapping>
<extension>txt</extension>
<mime-type>text/plain</mime-type>
</mime-mapping>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/faces/pages/error.xhtml</location>
</error-page>
<listener>
<listener-class>pt.ifap.infra.web.listeners.SessionListener</listener-class>
</listener>
<jsp-config/>
</web-app>
FACES-CONFIG
-------------------------------
<?xml version="1.0" encoding="windows-1252"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"
version="2.0">
<application>
<locale-config>
<default-locale>pt</default-locale>
<supported-locale>en</supported-locale>
</locale-config>
<message-bundle>Messages</message-bundle>
</application>
<managed-bean>
<managed-bean-name>form_pedPagamentoSeleccao</managed-bean-name>
<managed-bean-class>pt.ifap.pedPagamento.backing.Seleccao</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
BEAN
-------------------------
@ViewScoped
public class Seleccao extends CRUDBackingBean {
public String consultarBen_action() throws ErroNegocio {
//something
}
}
TEMPLATE PAGE
----------------------------
<?xml version="1.0" encoding="windows-1252"?>
<!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:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich" xmlns:t="http://myfaces.apache.org/tomahawk">
<f:loadBundle basename="mensagens" var="msgs"/>
<f:loadBundle basename="imagens" var="imgs"/>
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta http-equiv="Expires" content="0"/>
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="description" content="Men? do iDigital"/>
<meta name="author" content="IFAP"/>
<link rel="icon" href="/idigital.weblib/resources/idigital/2.0/ico/favicon-16x16.png" sizes="16x16"/>
<link rel="icon" href="/idigital.weblib/resources/idigital/2.0/ico/favicon-32x32.png" sizes="32x32"/>
<link rel="icon" href="/idigital.weblib/resources/idigital/2.0/ico/favicon-64x64.png" sizes="64x64"/>
<link rel="shortcut icon" href="/idigital.weblib/resources/idigital/2.0/favicon.ico" type="image/x-icon"/>
<link rel="apple-touch-icon" href="/idigital.weblib/resources/idigital/2.0/ico/apple-touch-icon-57x57.png"/>
<link rel="apple-touch-icon" sizes="72x72"
href="/idigital.weblib/resources/idigital/2.0/ico/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114"
href="/idigital.weblib/resources/idigital/2.0/ico/apple-touch-icon-114x114.png"/>
<link rel="apple-touch-icon" sizes="144x144"
href="/idigital.weblib/resources/idigital/2.0/ico/apple-touch-icon-144x144.png"/>
<title>
<h:outputText value="#{initParam.NOME}"/>
</title>
<link rel="stylesheet" href="/idigital.weblib/resources/idigital/1.0/css/reset.css" type="text/css"/>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/tiles.css" type="text/css"></link>
<link rel="stylesheet" href="/idigital.weblib/resources/idigital/1.0/css/default.css" type="text/css"/>
</h:head>
<h:body>
<h:form id="form">
<a4j:status onstart="block();" onstop="unblock();"/>
<t:div styleClass="principal">
<t:div styleClass="header">
<ui:include src="/pages/cabecalho.xhtml"/>
</t:div>
<t:div styleClass="mensagens">
<ui:include src="/pages/cabecalhomensagens.xhtml"/>
</t:div>
<t:div styleClass="body">
<ui:insert name="corpo"/>
</t:div>
</t:div>
</h:form>
</h:body>
</html>
CLIENT PAGE that uses the template
---------------------------------------------------------
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich"
xmlns:t="http://myfaces.apache.org/tomahawk" template="/pages/modelo.xhtml">
<ui:define name="corpo">
<a4j:outputPanel id="panCriterios">
<rich:panel>
<t:panelGrid columns="4" align="center" styleClass="form-layout" cellspacing="5">
<p class="center">
<h:outputLabel value="NIFAP" styleClass="first"/>
<h:inputText required="true" disabled="#{form_pedPagamentoSeleccao.userMutuario}"
value="#{form_pedPagamentoSeleccao.nifap}" id="nifap" size="9" maxlength="9">
<t:validateRegExpr pattern="[0-9]*"/>
</h:inputText>
<a4j:commandButton value="Consultar" styleClass="operacao" id="consultarBen"
disabled="#{form_pedPagamentoSeleccao.userMutuario || !form_pedPagamentoSeleccao.contextoAplicacional.acesso.consultar}"
action="#{form_pedPagamentoSeleccao.consultarBen_action()}"
render="operacoes pedidos"/>
<br/>
<a4j:outputPanel ajaxRendered="true">
<h:messages/>
<h:message for="consultarBen" infoClass="infoMessage" warnClass="warnMessage"
errorClass="errorMessage" fatalClass="fatalMessage"/>
<h:message for="nifap" infoClass="infoMessage" warnClass="warnMessage"
errorClass="errorMessage" fatalClass="fatalMessage"/>
</a4j:outputPanel>
</p>
</t:panelGrid>
</rich:panel>
</a4j:outputPanel>
<a4j:outputPanel id="operacoes" rendered="#{form_pedPagamentoSeleccao.dataTableOperacoes.rowCount > 0}">
<rich:panel header="Projetos">
<p class="legend">
<h:outputText value="#{msgs.label_ope}"/>
</p>
<rich:dataTable value="#{form_pedPagamentoSeleccao.dataTableOperacoes}" var="item" id="table"
rows="20" rowClasses="odd-row, even-row" styleClass="data">
<rich:column>
<f:facet name="header">
<h:outputText value="#{msgs.can_pedido_pagto_operacao}"/>
</f:facet>
<a4j:commandLink id="cmdlnkPedidosDetalhe"
action="#{form_pedPagamentoSeleccao.pedidosDetalhe()}"
render="pedidos" value="#{item.numero}"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Reanalise"/>
</f:facet>
<h:outputText value="#{item.reanalise}" styleClass="first"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="#{msgs.can_pedido_pagamento_seleccao_programa_medida}"/>
</f:facet>
<h:outputText value="#{item.programaMedida}" styleClass="first"/>
</rich:column>
<rich:column filter="#{carsFilteringBean.mileageFilterImpl}">
<f:facet name="header">
<h:outputText value="#{msgs.can_pedido_pagto_tipologia}"/>
</f:facet>
<h:outputText value="#{item.tipologiaComponente}" styleClass="first"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="#{msgs.data_inicio}"/>
</f:facet>
<h:outputText value="#{item.dataIni}" styleClass="first"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="#{msgs.data_fim}"/>
</f:facet>
<h:outputText value="#{item.dataFim}" styleClass="first"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="#{msgs.can_pedido_pagamento_seleccao_situcao_projecto}"/>
</f:facet>
<h:outputText value="#{item.estado}" styleClass="first"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="#{msgs.can_pedido_pagamento_seleccao_observacoes}"/>
</f:facet>
<h:outputText style="#{item.fundo_branco}" value="#{item.observacoes}" styleClass="first"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value=""/>
</f:facet>
<t:commandButton action="#{form_pedPagamentoSeleccao.criarPedidoPagamento}"
disabled="#{!form_pedPagamentoSeleccao.podeCriarPP}" value="#{msgs.criar}"></t:commandButton>
<t:commandButton action="#{form_pedPagamentoSeleccao.recuperaPedidoPagamento}"
onclick="if (!confirm(\\'#{msgs.cmd_substituicao_rea}\\')) return false;"
rendered="#{item.mostrarBotaoRea}" value="#{msgs.can_rea_recuperar}"></t:commandButton>
</rich:column>
</rich:dataTable>
</rich:panel>
</a4j:outputPanel>
<a4j:outputPanel rendered="#{form_pedPagamentoSeleccao.dataTablePedidos.rowCount > 0}" id="pedidos"></a4j:outputPanel>
</ui:define>
</ui:composition>
what I'm making wrong ?!