2014-04-23 7 views
5

कुछ स्थितियों पर जेएसएफ आंतरिक पृष्ठ को प्रोग्रामिक रूप से प्रबंधित बीन में कैसे करें (जैसे कोई अपवाद होता है)? मैं अन्य पेज पर अग्रेषित करते समय यूआरएल को बदलना नहीं चाहता हूं।जेएसएफ आंतरिक पृष्ठ को प्रोग्रामेटिक रूप से कैसे करें?

अभी मैं इसका उपयोग करके प्रोग्रामेटिक रूप से दूसरे पृष्ठ पर रीडायरेक्ट करता हूं, लेकिन यह यूआरएल बदलता है।

FacesContext.getCurrentInstance().getExternalContext().redirect(); 

उत्तर

4

इस प्रयास करें:

public void forward(){ 
    String uri = "destination.xhtml"; 
    FacesContext.getCurrentInstance().getExternalContext().dispatch(uri); 
} 
+0

धन्यवाद, .. यह काम करता है! पृष्ठ को प्रोग्रामेटिक रूप से आगे करने का यह मानक तरीका है या यह एक कामकाज है? –

+0

@ user01: इस समय यह मानक तरीका है :) –

+2

यह जेएसएफ नेविगेशन हैंडलर उपयोग का उपयोग करने के लिए सर्वलेट रीडायरेक्शन है: FacesContext.getCurrentInstance()। GetAplication()। GetNavigationHandler()। HandleNavigation (FacesContext.getCurrentInstance(), null , "YOUR_NAVIGATION_CASE_DEFINED_IN_FACES_CONFIG"); –

1

आप

FacesContext.getCurrentInstance().getViewRoot().setViewId("your target view id"); 
    FacesContext.getCurrentInstance().renderResponse(); 

का उपयोग कर सकते हैं या आप

FacesContext.getCurrentInstance().responseComplete(); 

आशा इस मदद करता है का उपयोग कर सकते हैं।

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