a4j:commandLink动作不起作用,但如果我点击两次,我用h:commandLink工作替换

时间:2015-03-28 05:35:48

标签: jsf richfaces jsf-2.2

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验证过。

0 个答案:

没有答案