2012-12-17 8 views
5

अपडेट नहीं होता है मेरे पास व्यूस्कोप मोड में प्रबंधित बीन है। इसलिए, जब मैं इस प्रबंधित बीन से कुछ कार्रवाई करता हूं तो मेरा पृष्ठ अपडेट नहीं होता है। मैं देखता हूं कि मेरी कार्रवाई अच्छी तरह से लागू की जाती है और शून्य लौटती है (दृश्यकोप कार्य प्रवाह ठीक है)।जेएसएफ व्यूस्कोप - क्रियाओं पर शून्य वापस लौटने से दृश्य

तो, मैं गलत क्या कर रहा हूं?

यदि मैं अजाक्स का उपयोग कर पेज को पुनः प्रस्तुत करता हूं तो यह ठीक काम करता है।

संपादित करें:

मेरे संस्करण हैं:

JSF 2.1.14 Primefaces साथ 3.4.1

मेरे कोड:

@ManagedBean(name = "test") 
@ViewScoped 
public class TestMB implements Serializable { 
    private String status; 

    public String getStatus() { return this.status; } 
    public void setStatus(String status) { this.status = status; } 

    public String changeStatus() { 
     this.status = "ViewScope Works!"; 
     return null; 
    } 

} 

मेरे पेज:

<!DOCTYPE HTML> 
<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
       xmlns:ui="http://java.sun.com/jsf/facelets" 
       xmlns:h="http://java.sun.com/jsf/html" 
       xmlns:f="http://java.sun.com/jsf/core" 
       xmlns:p="http://primefaces.org/ui" 
       template="/template/ui.xhtml"> 
    <ui:define name="head"> 
    </ui:define> 
    <ui:define id="teste" name="content"> 
     <h:form id="form"> 
      <h:outputText id="status" value="OK?: #{test.status}" /> 
      <p:commandButton id="myAction" value="Do it!" action="#{test.changeStatus}" /> 
     </h:form> 
    </ui:define> 
</ui:composition> 

मेरे एस पर क्रेन, स्थिति चर बदल नहीं है। और, हाँ .. कार्रवाई ठीक कहा जाता है। कुछ टिप?

+0

स्पष्ट से बचने के लिए, क्या यह क्रिया AJAX द्वारा लागू की गई है या नहीं? इस प्रकार, आप AJAX द्वारा कार्रवाई का आह्वान कर रहे हैं, लेकिन पेज को AJAX द्वारा अपडेट नहीं कर रहे हैं? – BalusC

+0

नहीं। मैं दो तरीकों से कोशिश करता हूं: सामान्य और अजाक्स द्वारा। सामान्य काम नहीं करता है। AJAX द्वारा/घटक दृश्य को पुन: प्रस्तुत करके, ठीक काम करता है। मैं फायरबग पर देखता हूं कि एचटीएमएल प्रतिक्रिया ठीक है (सामान्य कॉल द्वारा) का समर्थन कर रहा है लेकिन दृश्य रीफ्रेश/अपडेट भी नहीं है। – abyteneverlie

+0

एक एसएससीसीई के स्वाद में कोड दिखाएं। जेएसएफ के लिए इसे कैसे तैयार करें, हमारे जेएसएफ विकी पेज http://stackoverflow.com/tags/jsf/info – BalusC

उत्तर

8

आप फॉर्म जमा करने के लिए <p:commandButton> का उपयोग कर रहे थे। यह डिफ़ॉल्ट रूप से एक AJAX अनुरोध भेजता है। यह डिफ़ॉल्ट रूप से कुछ भी अद्यतन नहीं करता है। जिस व्यवहार को आप देख रहे हैं वह इस प्रकार पूरी तरह से अपेक्षित है। इस "समस्या" को हल करने के कई तरीके (उद्धृत, यह वास्तव में एक समस्या नहीं है, लेकिन सिर्फ एक वैचारिक गलतफहमी के रूप में) कर रहे हैं:

  1. यह बताओ ajax का उपयोग नहीं करने के लिए।

    <p:commandButton ... ajax="false" /> 
    
  2. इसे फ़ॉर्म को अपडेट करने के लिए कहें।

    <p:commandButton ... update="@form" /> 
    
  3. मानक JSF घटक है, जो डिफ़ॉल्ट रूप से ajax का उपयोग नहीं करता द्वारा प्रतिस्थापित करें।

    <h:commandButton ... /> 
    

ध्यान दें कि यह ठोस समस्या को देखते ही गुंजाइश से संबंधित नहीं है। अनुरोध दायरे सहित, एक और दायरे का उपयोग करते समय आपको वही समस्या होगी (बिल्कुल वही समाधान के साथ)।

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

  • कोई संबंधित समस्या नहीं^_^