2011-09-15 6 views
5

हम जेएसएफ 2 का उपयोग करते हैं, हमारे पास फॉर्म फ़ील्ड वाले पेज हैं जो बैकिंग बीन से जुड़े कमांड बटन के साथ हैं।ब्राउज़र बैक बटन पुराने बैकिंग बीन मानों को साफ़ नहीं करता

जब हम फॉर्म पेज तक पहुंचते हैं, तो मान दर्ज करें और सबमिट करें, बैकिंग बीन सही मान प्राप्त करता है और इसे अगले पृष्ठ पर ले जाता है। यदि मैं ब्राउज़र में बैक बटन दबाता हूं, तो यह फॉर्म के साथ पिछले पृष्ठ पर ले जाता है। अगर मैं फॉर्म में नए मान डालता हूं और सबमिट करता हूं, तो बैकिंग बीन अभी भी चरण 1 में पुराने मान प्राप्त करता है।

उत्तर

6

यह विषम है। शायद आपका बीन सत्र के दायरे में रखा गया है और/या ब्राउज़र ने कैश से पृष्ठ का अनुरोध किया है। शुरू करने के लिए, आप filter द्वारा सभी गतिशील पृष्ठों के लिए ब्राउज़र कैश को अक्षम करना चाहते हैं जो उचित प्रतिक्रिया शीर्षलेख सेट करता है।

@Override 
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
    HttpServletRequest req = (HttpServletRequest) request; 
    HttpServletResponse res = (HttpServletResponse) response; 

    if (!req.getRequestURI().startsWith(req.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER)) { // Skip JSF resources (CSS/JS/Images/etc) 
     res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
     res.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
     res.setDateHeader("Expires", 0); // Proxies. 
    } 

    chain.doFilter(request, response); 
} 

मानचित्र FacesServlet की सर्वलेट नाम पर या एक ही URL पैटर्न पर इस फिल्टर।

अंतिम, लेकिन कम से कम नहीं, सत्र के दायरे में अपने फॉर्म सेम न रखें। उन्हें अनुरोध में रखें या दायरा देखें।

+0

जेएसएफ गुरु ... बी। आपके उत्तर ने एक बग हल करने में मदद की ... धन्यवाद ... – user684434

+0

आपका स्वागत है। – BalusC

+0

मुझे आज एक ग्लासफ़िश 3.1.1 के साथ एक व्यूस्कोप बीन के साथ मिला। जब मैं वापस जाता हूं और सबमिट बटन दबाता हूं तो दूसरी बार बटन ** कार्रवाई निष्पादित नहीं होती है ** और ब्राउज़र (फ़ायरफ़ॉक्स) पिछले परिणाम के साथ दृश्य प्रदर्शित करता है। बटन कोड ''। खोज फ़ॉर्म और परिणाम डेटाटेबल एक ही दृश्य में हैं xhtml फ़ाइल (लेकिन फेसलेट के रूप में शामिल)। मैं इसका विश्लेषण करने की कोशिश करूंगा। – mjn

0

जेएसएफ सावधानी से सीखें, जेएसएफ 2.0 ग्लासफ़िश में अच्छा काम करता है, अगर आपके पास बीन्स देखा गया है और ब्राउजर बैक/अगली लिंक जेएसएफ ने सावधानीपूर्वक पृष्ठ को लोड किया है तो आप अपना डेटा देख सकते हैं और इसे सबमिट कर सकते हैं।

संबंधित मुद्दे