【问题标题】:value="#{detailCtr.montants.get(0)}": java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 [duplicate]value="#{detailCtr.montants.get(0)}":java.lang.IndexOutOfBoundsException:索引:0,大小:0 [重复]
【发布时间】:2016-05-08 07:14:15
【问题描述】:

我想从数据库中恢复依赖于同一个表的 ID 的数据,并且在某些条件下被另一个函数恢复;

这是我的代码,但它不起作用,我不知道如何解决它:(

    @Override 
public List<Float> findMontantByIdDetail(BigDecimal numCaisCais, int   codDevDev)
{




        System.out.println("Debut Fonction  findMontantByIdDetail");

        DetailCaisse detail=new DetailCaisse();
        detail=findElementById( numCaisCais,  codDevDev);
        System.out.println(detail);

        List<Float> montants=new ArrayList<Float>() ;

        montants.add(detail.getMontToteDsc() );
        montants.add(detail.getMontTotsDsc() );

        System.out.println(montants.get(0) );
        System.out.println(montants.get(1));


        return montants;
}

page.xhtml

        <h:outputText>Code Devise</h:outputText>
        <p:inputText value="#{detailCtr.codDevDev}" />
        <h:outputText>code Caisse</h:outputText>
        <p:inputText value="#{detailCtr.numCaisCais}" />

            <h:commandButton value="Submit" action="#{detailCtr.findMontant()}"
                update="cc">

            </h:commandButton>

            <p:dataTable value="#{detailCtr.findMontant()}" var="detail"
                style="width:50px" id="crsvente">

                <p:column headerText="Montant total entrée" style="width:150px">
                    <h:outputText value="#{detailCtr.montants.get(0)}" id="cc" />

                </p:column>
                <p:column headerText="Montant total Sortie" style="width:150px">
                    <h:outputText value="#{detailCtr.montants.get(1)}" id="cc" />

                </p:column>

错误是:

 /pages/gestionCaisse/getMontant.xhtml @32,68 value="#{detailCtr.montants.get(0)}": java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

你能帮帮我吗:)

【问题讨论】:

    标签: spring hibernate jsf


    【解决方案1】:

    我已经解决了,我会提出解决方案:)

    findElementById

    @Override
    public DetailCaisse findElementById(BigDecimal numCaisCais, int codDevDev) {
    
        Connection conn = null;
    
        String sql = "select   d.num_dsc_dsc ,  d.mont_tote_dsc , d.mont_tots_dsc from DETAIL_CAISSE d ,Devise dev,  Caisse c where d.num_cais_cais=c.num_cais_cais  and d.cod_dev_dev= dev.cod_dev_dev and c.num_cais_cais=? and dev.cod_dev_dev=?";
    
        DetailCaisse detail = new DetailCaisse();
    
        try {
    
            conn = dataSource.getConnection();
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setBigDecimal(1, numCaisCais);
            ps.setInt(2, codDevDev);
    
            ResultSet rs = ps.executeQuery();
    
            while (rs.next()) {
    
                detail.setNumDscDsc(rs.getBigDecimal("num_dsc_dsc"));
                detail.setMontToteDsc(rs.getFloat("mont_tote_dsc"));
                detail.setMontTotsDsc(rs.getFloat("mont_tots_dsc"));
    
            }
    
            rs.close();
            ps.close();
    
        }
    
        catch (Exception e) {
    
            throw new RuntimeException(e);
        } finally {
            try {
                conn.close();
            } catch (SQLException e) {
    
            }
    
        }
    
        return detail;
    }
    

    findMontantByIdDetail

    @Override
    public List<Float> findMontantByIdDetail(BigDecimal numCaisCais,
            int codDevDev) {
    
        DetailCaisse detail = new DetailCaisse();
        detail = findElementById(numCaisCais, codDevDev);
        System.out.println(detail);
    
        List<Float> montants = new ArrayList<Float>();
    
        montants.add(detail.getMontToteDsc());
        montants.add(detail.getMontTotsDsc());
    
        System.out.println(montants);
    
        System.out.println(detail.getMontToteDsc() + ""
                + detail.getMontTotsDsc());
        return montants;
    }
    

    页面.xhtml

    <h:form id="form">
    
            <h:outputText>Code Devise</h:outputText>
            <p:inputText value="#{detailCtr.codDevDev}" />
            <h:outputText>code Caisse</h:outputText>
            <p:inputText value="#{detailCtr.numCaisCais}" />
            <h:commandButton value="Submit" action="#{detailCtr.findMontant()}"
                update="cc">
    
            </h:commandButton>
    
            <p:dataTable value="#{detailCtr.findMontant()}" var="detail"
                style="width:50px" id="crsvente">
    
    
                <p:column headerText="Montant" style="width:150px">
                    <h:outputText value="#{detail}" id="cc" />
    
                </p:column>
    
            </p:dataTable>
        </h:form>
    

    祝大家好运:)

    【讨论】:

      猜你喜欢
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多