2013-01-21 9 views
6

मैं struts2-json-plugin-2.2.3.jar का उपयोग कर रहा हूं।में जेसन स्ट्रैट्स 2 प्लगइन में प्रॉपर्टीज काम नहीं कर रहे हैं

<action name="jsonUserFilterListAction" class="com.my.fitnessb.actions.UserArticlesAction" method="filterList"> 
     <result name="success" type="json"> 
      <param name="includeProperties">filterList</param> 
     </result> 
</action> 

कार्रवाई वर्ग

public class UserArticlesAction extends ActionSupport implements SessionAware, ServletRequestAware { 

    private List<FilterType> filterList; 
    HttpServletRequest request; 

    public String filterList() { 
    filterList = new ArrayList<FilterType>(); 
    filterList.add(new FilterType(10, "Latest Articles")); 
    filterList.add(new FilterType(1, "Trending Articles")); 
    filterList.add(new FilterType(2, "Top Rated Articles")); 
    filterList.add(new FilterType(3, "Most Viewd Atricles")); 
    filterList.add(new FilterType(4, "All Atricles")); 
    return SUCCESS; 
    } 
    //setter & getter of filterList 
} 

struts.xml कोड, लेकिन मैं FilterType वर्ग की इस संपत्ति प्राप्त करने में सक्षम नहीं कर रहा हूँ: और इस तरह वर्ग के filterList संपत्ति क्रमानुसार करने की कोशिश कर रहा।

+0

आप अगर परम 'मूल्य प्राप्त कर सकते हैं includeProperties' उपयोग नहीं होता है? – Quincy

+0

यदि मैं पैरामीटर शामिल करता हूं तो मुझे एक्शन क्लास में सभी विशेषताओं को क्रमबद्ध करना पड़ रहा है –

उत्तर

6

में खेतों मानते हुए अपने FilterTypeid और desc

नाम हैं की कोशिश करो

<param name="includeProperties"> 
filterList\[\d+\]\.id, 
filterList\[\d+\]\.desc 
</param> 
+1

बहुत बहुत धन्यवाद, यह मेरे लिए काम किया। –

+0

कोई समस्या नहीं, हालांकि यह काम करता है मुझे लगता है कि यह हर गुणों को सूचीबद्ध करने के लिए बोझिल है ...: / – Quincy

3

स्ट्रूट 2-जेसन प्लगइन एक्शन क्लास में आपके सभी एक्शन विशेषताओं को क्रमबद्ध करेगा।

यह एक समस्या है जिसे मैंने struts2-json-plugin का उपयोग करने का सामना करना पड़ा था। भले ही plugin-docincludeProperties पैरामीटर के लिए एक कामकाजी उदाहरण दिखाएं, फिर भी यह मेरे लिए कभी काम नहीं करता और कभी भी कई परीक्षणों और गुगलिंग के बाद नहीं किया। इसलिए मुझे धारावाहिक होने से गैर-आवश्यक सामग्रियों को हटाने के लिए excludeProperties का उपयोग करना था, जिसे मैं क्रमबद्ध करना चाहता हूं उसे निर्दिष्ट करने के बजाय।

+0

ओह ... क्या ऐसा है? यह बहुत बुरा है, मुझे लगता है, इसलिए मुझे गैर-आवश्यक सामग्रियों को क्रमबद्ध करने से ठीक करने के लिए प्रॉपर्टी का उपयोग करना होगा, ठीक है thanx ... मैं इसे जांचूंगा और अगर यह काम करेगा तो वापस आ जाएगा। आपको धन्यवाद ... दोस्त –

+0

मैंने जेसन प्लगइन 2.3.8 के साथ कोशिश की, includeproperties बस ठीक काम करता है। अगर यह आपके प्रोजेक्ट में काम नहीं करता है तो आप जेसन प्लगइन के स्रोत कोड का पता लगा सकते हैं (org.apache.struts2.json.JSONWriter) यह काफी आसान है। – SalutonMondo

0

मामले में एनोटेशन स्वाद पसंद करते हैं

@ParentPackage("json-default") 
@Namespace("/") 
@ResultPath(value = "/") 
@Results({ @Result(name="firstDir",type="json" 
,params = {"includeProperties","fileList\\[\\d+\\]"} 
) }) 

fileList = new ArrayList<String>(); 
     for (File img : folder.listFiles()) { 
      fileList.add(img.getName()); 
     } 
return "firstDir" 
संबंधित मुद्दे