Mam ten kod działa w moim webapp:Making p: praca CommandButton jak H: przycisk
<h:button value="Edit user..." outcome="/public/user" >
<f:param name="userName" value="#{authBean.authUser}"/>
</h:button>
Co robi:
- To sprawia, że przycisk wyślij GET
- Przechodzi określony parametr w adresie URL, dzięki czemu jest on niezrównany.
Co potrzebne:
- To powinno działać jak H: przycisk powyżej (wysłać GET)
- przycisk powinien wyglądać innych Primefaces przycisków (np ozdobiony obrazem ... itd.).
Jest to najbliżej mogę dostać:
<p:commandButton value="Edit user..." action="/public/user?faces-redirect=true" ajax="false" immediate="true" >
<f:param name="userName" value="#{authBean.authUser}"/>
</p:commandButton>
Wysyła POST, który pobiera przekierowany do nowego adresu URL z GET. Jednak parametr jest tracony w procesie.
Inny pomysł:
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml">
<f:param name="userName" value="#{authBean.authUser}"/>
</p:linkButton>
Żądanie GET jest przerywana (??? zgodnie z Firebug) i bieżąca strona jest znowu pisał.
Jaki jest właściwy sposób na wykonanie tego?
UPDATE: to działa (na pustej stronie, bez p: DataTable):
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername">
ale to nie:
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername&secondParam=otherValue">
te ostatnie wyniki w:
500: javax.servlet.ServletException: Błąd analizy /sample0.xhtml: Błąd Tracing [wiersz: 14] The referec nce do encja "secondParam" musi kończyć się z ';' ogranicznik.
Update2: the & należy uciekł:
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername&secondParam=otherValue">
i wygląda dobrze ... ale ja wciąż GET i POST przerwana Odesłano:
alt text http://img64.imageshack.us/img64/1017/primefaceslinkbutton.jpg
To jest pełna pusta strona, którą próbowałem to z:
<?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>
Wydanie Primefaces 2.1.
Próbowałem p: linkButton, ale to nie działa. Firebug mówi, że żądanie GET zostało przerwane, a aktualna strona jest ponownie POSTED. – egbokul
Niestety, nie wykonałem pełnej kopii/wklejania. Używam atrybutu "href", "URL" nie jest nawet akceptowany przez Netbeans. Teraz sprawdzę inne javascript ... – egbokul
Na pustej stronie p: linkButton działa ... sort. f: param nie działa. Jeśli podam parametr bezpośrednio w adresie URL (np. ".../user.xhtml? UserName = myusername") to działa. Kiedy określę jeszcze jeden parametr, Glassfish mówi: 500: javax.servlet.ServletException: Error Parsing /sample0.xhtml: Błąd śledzony [wiersz: 14] Odwołanie się do encji "relVerMin" musi kończyć się znakiem ";" ogranicznik. (RelVerMin był moim drugim parametrem, takim jak: ".../delrel.xhtml? relVerMaj = 1 & relVerMin = 0") – egbokul