2010-07-26 13 views
5

मैं अपने webapp में यह काम कर कोड है:बनाना p: ज तरह CommandButton काम: बटन

<h:button value="Edit user..." outcome="/public/user" > 
    <f:param name="userName" value="#{authBean.authUser}"/> 
</h:button> 

यह क्या करता है:

  1. यह बटन एक प्राप्त
  2. यह गुजरता भेजने बनाता है यूआरएल में निर्दिष्ट पैरामीटर, इसे बुकमार्क करने योग्य बनाता है।

मैं क्या जरूरत है:

  • ऐसा लगता है कि ज काम करना चाहिए: बटन के ऊपर (जीईटी भेज)
  • बटन (अन्य Primefaces बटन की तरह दिखना चाहिए जैसे एक छवि ... आदि के साथ सजाया।)।

यह सबसे करीब है मैं मिल सकता है:

<p:commandButton value="Edit user..." action="/public/user?faces-redirect=true" ajax="false" immediate="true" > 
    <f:param name="userName" value="#{authBean.authUser}"/> 
</p:commandButton> 

यह एक पोस्ट है कि किसी GET के साथ नए URL रीडायरेक्ट कर दिया जाता भेजता है। हालांकि प्रक्रिया में पैरामीटर खो गया है।

एक और विचार:

<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml"> 
    <f:param name="userName" value="#{authBean.authUser}"/> 
</p:linkButton> 

प्राप्त अनुरोध निरस्त किया गया है (??? Firebug के अनुसार) और वर्तमान पृष्ठ फिर से पोस्ट किया जाता है।

ऐसा करने का सही तरीका क्या है?

अद्यतन: इस (एक खाली पृष्ठ पर, कोई पी के साथ: DataTable): काम करता है

<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername"> 

लेकिन यह नहीं करता है: में

<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername&secondParam=otherValue"> 

बाद परिणाम:

500: javax.servlet.ServletException: त्रुटि पार्सिंग/नमूना 0.xhtml: त्रुटि पता लगाया गया [लाइन: 14] रेफर 0 सेइकाई "दूसरा पैराम" ';' के साथ समाप्त होनी चाहिए सीमांकक।


UPDATE2: & भाग निकले जाना चाहिए:

<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername&amp;secondParam=otherValue"> 

और यह अच्छा लगता है ... लेकिन मैं अभी भी निरस्त किया गया और बाद पुन: भेज पाने:

alt text http://img64.imageshack.us/img64/1017/primefaceslinkbutton.jpg

यह एक पूरा खाली पृष्ठ है जिसे मैं कोशिश कर रहा हूं इसके साथ:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:c="http://java.sun.com/jsp/jstl/core" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:p="http://primefaces.prime.com.tr/ui"> 
    <h:head /> 
    <h:body> 
     <h:form> 
      <p:linkButton value="Click me" href="http://stackoverflow.com" /> 
     </h:form> 
    </h:body> 
</html> 

प्राइमफ़ेस 2.1 रिलीज़।

उत्तर

1

p:linkButton का उपयोग करें।


अद्यतन: कोड उदाहरण के साथ अपने अद्यतन के अनुसार, यूआरएल, href विशेषता में निर्दिष्ट किया जाना चाहिए url attribtue में नहीं। घटक के दस्तावेज को भी देखें जो मैंने ऊपर लिंक किया है।

लक्षण कम से कम ऐसा लगता है जैसे आप एक एसिंक्रोनस (अजाक्स) अनुरोध को फायर कर रहे हैं, सिंक्रोनस नहीं। फ़ायरबग वास्तव में इस तरह की त्रुटि देगा जब अनुरोध किसी दूसरे डोमेन पर निकाल दिया जाता है।

क्या आपके पास कुछ अन्य जावास्क्रिप्ट नहीं हैं जो लिंक के डिफ़ॉल्ट व्यवहार से परेशान/टकराव कर रहे हैं? बटन एक सरल onclick="window.location=newurl;" द्वारा नेविगेट कर रहा है।


अद्यतन 2: काम करता है अगर आप इसे एक साधारण पृष्ठ में स्टैंडअलोन का परीक्षण? जैसे

<!DOCTYPE html> 
<html xmlns="http://www.w3c.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.prime.com.tr/ui"> 
    <h:head> 
     <title>Test</title> 
    </h:head> 
    <h:body> 
     <p:linkButton value="test" href="http://stackoverflow.com" /> 
    </h:body> 
</html> 
+0

मैं पी का प्रयास किया: LinkButton है, लेकिन यह काम नहीं करता। फायरबग का कहना है कि जीईटी अनुरोध निरस्त कर दिया गया है, और वर्तमान पृष्ठ दोबारा पोस्ट किया गया है। – egbokul

+0

क्षमा करें, मैंने एक पूर्ण प्रतिलिपि/पेस्ट नहीं किया है। मैं "href" विशेषता का उपयोग कर रहा हूं, "यूआरएल" को नेटबीन्स द्वारा भी स्वीकार नहीं किया जाता है। अब मैं अन्य जावास्क्रिप्ट की जांच करूंगा ... – egbokul

+0

एक खाली पृष्ठ पर पी: लिंक बटन काम करता है ... प्रकार। एफ: परम काम नहीं करता है। यदि मैं सीधे यूआरएल में पैरामीटर निर्दिष्ट करता हूं (उदाहरण: ".../user.xhtml? UserName = myusername") यह काम करता है। जब मैं एक और पैरामीटर निर्दिष्ट करता हूं, तो ग्लासफ़िश 500 कहता है: javax.servlet.ServletException: त्रुटि पार्सिंग/नमूना 0.xhtml: त्रुटि का पता लगाया गया [line: 14] इकाई "relVerMin" का संदर्भ ';' के साथ समाप्त होना चाहिए सीमांकक। (relVerMin मेरा दूसरा पैरामीटर था, जैसे: ".../delrel.xhtml? relVerMaj = 1 और relVerMin = 0") – egbokul

3

प्राइमफ़ेस 2.2 में, हम लिंक बटन को हटा देंगे और पी: बटन पेश करेंगे। अंक टिकट;

http://code.google.com/p/primefaces/issues/detail?id=1037

+0

आह, अच्छा। क्या आप किसी भी तरह की विशेष समस्या को विस्तार से समझा सकते हैं? – BalusC

+0

ठीक है, तो मैं अब के लिए छवियों के बिना एच: बटन के साथ रहना होगा। आपके समय और प्रयास के लिए BalusC धन्यवाद, और निश्चित रूप से उत्तर के लिए Cagatay ;-) – egbokul

+0

यहां नया पी: बटन है; http://www.primefaces.org:8080/prime-showcase-labs/ui/button.jsf –

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