ऐसा करने के कई तरीके हैं। जेएसपी में ऐसा करना थोड़ा बुरा है।
जैसा कि पहले ही उल्लेख किया है आप एक सर्वलेट का उपयोग करें और इंजेक्षन कर सकते हैं/वहाँ में अपने चर लोड। सत्र संदर्भ एक्सेस करके उदाहरण के लिए: अपने बैकअप बीन में एक विधि से HTTP प्रतिक्रिया को
MyBean myBean = (MyBean)FacesContext.getCurrentInstance()
.getExternalContext().getSessionMap().get("myBean");
या आप कर सकते हैं उत्पादन यह। उदाहरण के लिए:
try {
String xml = "<person>damian</person>";
FacesContext ctx = FacesContext.getCurrentInstance();
final HttpServletResponse resp = (HttpServletResponse)ctx.getExternalContext().getResponse();
resp.setContentType("text/xml");
resp.setContentLength(xml.length());
resp.getOutputStream().write(xml.getBytes());
resp.getOutputStream().flush();
resp.getOutputStream().close();
ctx.responseComplete();
} catch (IOException e) {
e.printStackTrace();
}
या यदि आप Facelets आप <f:view>
टैग में प्रतिक्रिया प्रकार सेट कर सकते उपयोग कर रहे हैं।
जेएसपी टैग "बुरा" क्यों है? यदि आपके पास एक पृष्ठ है जो एक्सएमएल वितरित करता है तो ऐसा लगता है कि यह तार्किक बात है? मुझे लगता है कि यह आपके उदाहरण में एक एक्सएमएल स्ट्रीम आउटपुट करना चाहता है या फिर वह जेएसपी में एक्सएमएल संरचना को परिभाषित करना चाहता है और डेटा तत्वों को भरने के लिए अपने बैकिंग-बीन का उपयोग करना चाहता है। –
सच है। ऐसी कुछ स्थितियां हो सकती हैं जहां पृष्ठ पर इसे प्रस्तुत करना "उपयोगी" हो सकता है लेकिन आईएमओ आमतौर पर बुरा होता है। फेसलेट या किसी अन्य "व्यू" फ्रेमवर्क के माध्यम से ऐसा करने के लिए भी यही है। – Damo