मैं अन्य वर्ग के साथ किसी अन्य पृष्ठ में मूल्यों को पुनर्प्राप्त करने के लिए समान रणनीति का उपयोग कर रहा हूं, यह वहां ठीक काम कर रहा है लेकिन नीचे के मामले में यह मान नहीं दिखा रहा है।

कृपया कोई विचार?

डेटाबेस मान प्राप्त करने के लिए निम्नलिखित विधि है।

public List<ProductBean> getPc() {

int i = 0;

Connection conn = null;
PreparedStatement pstmt = null;
// if(FacesContext.getCurrentInstance().getRenderResponse())
  List<ProductBean> pc= new ArrayList<ProductBean>();
 try {
    conn = getVConnection();
    String query = "select * from pictures";
    pstmt = conn.prepareStatement(query);
    //pstmt.setInt(1,this.id);
    rs = pstmt.executeQuery();
          while(rs.next())
                {
                    System.out.println(rs.getInt(1));
                    System.out.println(rs.getString(2));
 pc.add(i,newProductBean(rs.getInt(1),rs.getString(2)));
                    i++;
                }
          pstmt.close();
          rs.close();
          conn.close();


 }catch (Exception e)
            {
            e.printStackTrace();
            System.out.println("Error Data : " + e.getMessage());
            }

 return pc;

 } 

निम्नलिखित है जेएसएफ पेज

<h:dataTable  styleClass="panelGridColums" value="#{tableBean.pc}" var="p" border="1" >
 <h:column>
<f:facet name="header">Product no</f:facet>
    <h:outputText value="#{p.productNo}"/>
 </h:column>

 <h:column>
<f:facet name="header">Product name</f:facet>
    <h:outputText value="#{p.p2name}"/>
 </h:column>
 </h:dataTable>
0
Adnan 15 जून 2011, 11:15
ऐसा लगता है कि ठीक है क्या आप कंसोल में कुछ भी देखते हैं ??
 – 
kinkajou
15 जून 2011, 12:06
कंसोल में कुछ भी प्रदर्शित नहीं हो रहा है।
 – 
Adnan
15 जून 2011, 12:19
कोई मान जो मैं प्रिंट करने का प्रयास कर रहा हूं वह कंसोल में प्रदर्शित नहीं हो रहा है।
 – 
Adnan
15 जून 2011, 14:01

2 जवाब

सबसे बढ़िया उत्तर

यदि आपको पुनर्प्राप्त डेटा या त्रुटियों का कोई प्रिंट नहीं दिखाई देता है, तो इसका सीधा सा अर्थ है कि pictures तालिका खाली है। या हो सकता है कि आप इसे products टेबल बनाना चाहते हैं। या हो सकता है कि आप वह कोड नहीं चला रहे हैं जो आपको लगता है कि आप चला रहे हैं।

ध्यान दें कि आपके पास पोस्ट कोड में संकलन त्रुटि है:

pc.add(i,newProductBean(rs.getInt(1),rs.getString(2)));

लेकिन मैं मान लूंगा कि प्रश्न लिखते समय यह एक लापरवाह टाइपो है।


समस्या से असंबंधित, गेटटर पद्धति में डेटाबेस इंटरेक्शन कार्य करना एक बहुत बुरा विचार है। बीन के जीवन के दौरान एक गेट्टर को कई बार कहा जा सकता है। इसे पूरी तरह से (प्रीपॉप्युलेटेड) संपत्ति वापस करनी चाहिए, न कि कुछ महंगे व्यवसायिक काम करने के लिए जो एक बार किया जाना चाहिए। कोड के उस टुकड़े को बीन कन्स्ट्रक्टर में ले जाएं, अधिमानतः एक स्टैंडअलोन क्लास/विधि कॉल के स्वाद में।

public TableBean() throws SQLException {
    this.pc = productService.list();
}
1
BalusC 15 जून 2011, 16:15

सब कुछ अच्छा लगता है। शायद आप निम्न में से किसी एक बिंदु को आजमा सकते हैं:

  1. यह देखने के लिए ब्रेकपॉइंट के साथ अपनी विधि को चिह्नित करें, कि क्या विधि वास्तव में लागू की गई है
  2. यह देखने के लिए एक System.out.println(rs.next ()) आज़माएं कि क्या यह सत्य है और परिणाम सेट भर गया है।
1
CSan 15 जून 2011, 16:09