JDK 1.6, JSF 2.1, PrimeFaces 2.2.1, POI 3.2, और अपाचे बिलाव का उपयोग करते हुए 7निर्यात और PrimeFaces
मैं सेटअप करने के लिए एक सर्वलेट के आधार पर एक एक्सेल फ़ाइल की एक डाउनलोड अनुमति देने के लिए कोशिश कर रहा हूँ उपयोगकर्ता चयन एक्सेल दस्तावेज़ रनटाइम पर बनाया गया है।
कोई त्रुटि नहीं और कोड सर्वलेट में मिलता है।
मैं बटन क्लिक करता हूं और कुछ भी नहीं होता है। मैं डेटाटेबल निर्यात का उपयोग नहीं कर रहा हूं जो प्राइमफेसेस का उपयोग करता है क्योंकि मुझे एक्सेल दस्तावेज़ में डेटा पर रीडरिंग और कस्टम स्वरूपण करने की आवश्यकता है।
ExportExcelReports.java
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=\"my.xls\"");
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue(0.0);
FileOutputStream out = new FileOutputStream("my.xls");
workbook.write(out);
out.close();
}
ProjectReportBean.java
public void getReportData() {
try {
FacesContext ctx = FacesContext.getCurrentInstance();
ExternalContext ectx = ctx.getExternalContext();
HttpServletRequest request = (HttpServletRequest) ectx.getRequest();
HttpServletResponse response = (HttpServletResponse) ectx.getResponse();
RequestDispatcher dispatcher = request.getRequestDispatcher("/ExportExcelReports");
dispatcher.forward(request, response);
ctx.responseComplete();
} catch (Exception e) {}
}
index.xhtml
<h:form id="reportsForm">
<h:outputLabel for="report" value="Reports" /><br />
<h:selectOneMenu id="report" value="#{projectReportBean.selectedReport}" required="true" requiredMessage="Select Report">
<f:selectItem itemLabel="---" noSelectionOption="true" />
<f:selectItems value="#{projectReportBean.reports}" />
</h:selectOneMenu>
<p:commandButton action="#{projectReportBean.getReportData}" value="Export" update="revgrid" />
</h:form>
मैं सर्वलेट का उपयोग नहीं करना चाहता। सोचा था कि मैं भी था। बदले में यह बदलने के बाद कि मैं यह काम करने के बाद। –
उस स्थिति में, एक पुनर्लेखन सुझाव के लिए उत्तर अद्यतन की जांच करें। 'बाहरी कॉन्टेक्स्ट' में बहुत से प्रतिनिधि विधियां हैं। उनका उपयोग करें। http://download.oracle.com/javaee/6/api/javax/faces/context/ExternalContext.html आप अंततः अपने जेएसएफ कोड में ** शून्य ** 'javax.servlet' आयात के साथ समाप्त करना चाहते हैं। – BalusC
बस इसे सर्वलेट के बिना काम कर गया। वास्तव में मदद की सराहना करते हैं। –