JSF 2.2和RichFaces 4
我有三个页面,第一个有一个富人:dataTable和人名,点击那个名字然后带我到第二页,其中有关于那个人和两个富人的信息:dataTable,最后一个dataTable在第一页列a a4j:commandLink将我发送给第三个。问题出在最后一个a4j:commandLink它没有触发动作方法,如果我用h:commandLink工作替换它,但只需点击两下就可以了。
代码:
第一页
<h:form>
<rich:dataTable value="#{listadoClienteBacking.listadoGeneralDeCliente}" var="cli">
<f:facet name="header">LISTADO DE TODOS LOS CLIENTES</f:facet>
<rich:column>
<f:facet name="header">NOMBRE DE CLIENTE</f:facet>
<a4j:commandLink value="#{cli.nombre}" action="#{listadoClienteBacking.consultaCliente(cli.cedula)}"/>
</rich:column>
<rich:column>
<f:facet name="header">EMPRESA</f:facet>
<h:outputText value="#{cli.empresa}"/>
</rich:column>
<rich:column>
<f:facet name="header">VALOR PROXIMA CUOTA</f:facet>
<h:outputText value="#{cli.valor}">
<f:convertNumber pattern="#,##0"/>
</h:outputText>
</rich:column>
</rich:dataTable>
</h:form>
第二页
<h:form>
//info on input
<rich:dataTable value="#{listadoClienteBacking.listActCli}" var="act_cli" iterationStatusVar="it">
//column with information about this people
</rich:dataTable>
<rich:dataTable value="#{listadoClienteBacking.listPrestCli}" var="pp" iterationStatusVar="it2">
<rich:column>
<f:facet name="header">NO. PRESTAMO</f:facet>
<a4j:commandLink value="#{pp.idprestamo}" action="#{listadoClienteBacking.consultaPrestamo(pp.idprestamo)}"/>
</rich:column>
//other columns
</rich:dataTable>
</h:form>
背影
@ManagedBean
@SessionScoped
public class ListadoClienteBacking{
private Cliente objCliente = new Cliente();
private List<DataTableCliente> listadoGeneralDeCliente = new ArrayList<DataTableCliente>();
private List<Actividad_cliente> listActCli = new ArrayList<Actividad_cliente>();
private List<DataTablePrestamo> listPrestCli = new ArrayList<DataTablePrestamo>();
//construct, getter and setter
public void inicio(){ //this run at the beginin PostConstruct
ClienteManejador clienteManejador = new ClienteManejador();
setListadoGeneralDeCliente(clienteManejador.listaResumenCliente());
} //this fill the first page's info
public String consultaCliente(String idcliente){
ClienteManejador clienteManejador = new ClienteManejador();
PrestamoManejador prestamoManejador = new PrestamoManejador();
setObjCliente(clienteManejador.buscarCliente(idcliente));
listActCli.clear();
setListActCli(clienteManejador.buscarActCli(objCliente));
listPrestCli.clear();
setListPrestCli(prestamoManejador.listaResumenPrestamo(idcliente));
return "cliente";
} //this fill the second page's info called cliente.xhtml
public String consultaPrestamo(int idprestamo){
//do staff
return "/prestamo/datosPrestamo";
} //this should take me to the third page but don't
}
prestamoManejador,clienteManejador是POJO,工作正常,我已经与debbuger验证过。