के प्रस्तुत आउटपुट प्राप्त करना मुझे स्प्रिंग 3.1 एमवीसी व्यू के स्ट्रिंग में प्रस्तुत करने की आवश्यकता है (पीडीएफ कनवर्टर को भेजने के लिए, या एक एमआईएम ईमेल, आदि ...) औरस्प्रिंग 3.1 एमवीसी व्यू
इस नियंत्रक
@Autowired
TilesViewResolver viewResolver;
में इंजेक्ट किया जाता और निम्नलिखित सहायक विधि:
private String renderViewToString(ModelMap map, HttpServletRequest request, HttpServletResponse httpServletResponse, final String viewName) {
final StringWriter html = new StringWriter();
View pdfView = new View() {
@Override
public String getContentType() {
return "application/pdf";
}
@Override
public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper(response) {
@Override
public PrintWriter getWriter() throws IOException {
return new PrintWriter(html);
}
};
View realView = viewResolver.resolveViewName(viewName, Locale.US);
Map<String, Object> newModel = new HashMap<String, Object>(model);
newModel.put("pdfMode", Boolean.TRUE);
realView.render(newModel, request, wrapper);
}
};
try {
pdfView.render(map, request, httpServletResponse);
} catch (Exception e) {
// Ignored for now
}
return html.toString();
}
क्रेडिट Ted Young और उनकेके लिए मैं निम्नलिखित कोड का उपयोग किया गयाजिससे मेरा कोड आधारित है।
मेरा प्रश्न यह करने का एक बेहतर तरीका है? कोड मैंने ठीक काम किया है लेकिन अब मैं उत्पादन के करीब आ रहा हूं और मैंने सोचा कि अगर सुधार के लिए जगह है तो मैं इसे आजमा देना चाहूंगा।
धन्यवाद सभी
एनओपी, ठीक दिखता है। –
आपने इसे एक प्रश्न के रूप में पूछा ... मैंने इसे एक उत्तर के रूप में देखा ... वास्तव में जो मैं खोज रहा था ... मेरे लिए बिल्कुल उपयोगी है क्योंकि मुझे केवल अपने जेसन प्रतिक्रिया के हिस्से के रूप में भेजने के लिए HTML की आवश्यकता है ... आदमी को अंगूठे ... तुम चट्टान! – CodeBurner