2012-10-12 33 views
14

नहीं कहा गया है मुझे प्राइमफेस 3.2 और जेएसएफ 2.1 के साथ कुछ परेशानी मिली है।प्राइमफेस पी: कमांड बटन के साथ

इस तरह मेरे कोड:

<p:toolbar id="jeditortoolbar" styleClass="jeditortoolbar"> 
     <p:toolbarGroup align="left" height="25" style="height:25px"> 
     <p:commandButton type="button" title="#{msg.beenden}"/> 
     <p:commandButton type="button" title="#{msg.neu}"/> 
     </p:toolbarGroup> 
</p:toolbar> 

जब मैं Primefaces पर एक नज़र मेरी पी शोकेस ले: CommandButton जरूरत

actionListener="#{myBean.myActionMethod}" 

और मेरे बीन

public void myActionMethod(){} 

की तरह एक विधि की जरूरत है मेरे p:toolbar टैग के आसपास मेरे पास h:form है!

मेरा बीन ViewScoped है।

मेरे वर्कअराउंड *.xhtml में फ़ाइल

<p:commandButton type="button" title="#{msg.neu}" onclick="addNewEmptyFile()"/> 
<p:remoteCommand name="addNewEmptyFile" update=":codeTabForm"> 
    <f:setPropertyActionListener value="#{true}" target="#{myBean.myEvent}"/> 
</p:remoteCommand> 

MyBean.java

private String myEvent; 

public void setMyEvent(String value){ myActionMethod();} 

में यह मेरे लिए काम करता है, लेकिन मुझे लगता है कि यह बहुत ही गंदा कोड है।

क्या हर कोई मेरी मदद कर सकता है?

+0

कहाँ समस्या है? यदि आप शोकेस में ऐसा करने की कोशिश करते हैं तो क्या होता है? –

+0

जब मैं एक्शनलिस्टर मेथोड जोड़ता हूं तो ईवेंट को कॉल नहीं किया जाता है। – user1740789

+3

क्या आपने अपने कमांड बटन से 'type =" बटन "' को हटाने का प्रयास किया था? –

उत्तर

11

इस

Bean.java

@ManagedBean 
@ViewScoped 
public class Bean { 

    public String testButtonAction() { 
     System.out.println("testButtonAction invoked"); 
     return "anotherPage.xhtml"; 
    } 

    public void testButtonActionListener(ActionEvent event) { 
     System.out.println("testButtonActionListener invoked"); 
    } 

} 

प्रयास करें page.xhtml

<p:toolbar> 
    <p:toolbarGroup> 
    <p:commandButton action="#{bean.testButtonAction}"/> 
    <p:commandButton actionListener="#{bean.testButtonActionListener}"/> 
    </p:toolbarGroup> 
</p:toolbar> 
+5

मैं वास्तव में कुछ दिन चाहता हूं कि आईडीई विधि हस्ताक्षर मिस्चैच को अनदेखा करने के बजाय डेवलपर को चेतावनी दे सके ;-) – Leo

+1

भविष्य के संदर्भ के लिए: मेरे मामले में मैंने कुछ उदाहरण से विशेषता प्रकार = बटन की प्रतिलिपि बनाई और आश्चर्य किया कि यह कोड क्यों काम करता है और मेरा बटन नहीं था। – Thomas

+2

प्रकार = "बटन" को हटाने से मेरी समस्या ठीक हो गई – Fabii