У меня есть этот рабочий код в моем веб-приложение:Создание р: CommandButton работа как час: кнопка
<h:button value="Edit user..." outcome="/public/user" >
<f:param name="userName" value="#{authBean.authUser}"/>
</h:button>
Что он делает:
- Это делает кнопку отправить GET
- Он проходит указанный параметр в URL-адресе, делая его закладок.
Что мне нужно:
- Он должен работать как час: кнопка выше (отправить GET)
- кнопка должна выглядеть как другие кнопки 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>
Он посылает POST, который перенаправляется на новый URL с GET. Однако параметр теряется в процессе.
Другая идея:
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml">
<f:param name="userName" value="#{authBean.authUser}"/>
</p:linkButton>
запрос GET прерывается (??? согласно Firebug) и текущая страница размещена снова.
Каков правильный способ сделать это?
UPDATE: это работает (на пустой странице, без р: 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: Ошибка синтаксического анализа /sample0.xhtml: Ошибка Прослеживается [строка: 14] Рефери nce до объект "secondParam" должен заканчиваться ';' разделитель.
UPDATE2: & должны быть экранированы:
<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername&secondParam=otherValue">
и это хорошо выглядит ... но я все еще получаю ПОЛУЧИТЬ прервана и POST негодуют:
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.
Я попытался р: LinkButton, но он не работает. Firebug говорит, что запрос GET прерывается, и текущая страница снова добавляется. – egbokul
Извините, я не сделал полную копию/вставку. Я использую атрибут «href», «url» даже не принят Netbeans. Теперь я проверю наличие другого javascript ... – egbokul
На пустой странице p: linkButton работает ... вроде. f: параметр не работает. Если я укажу параметр в URL-адресе напрямую (например: «.../user.xhtml? UserName = myusername»), он работает. Когда я укажу еще один параметр, Glassfish говорит 500: javax.servlet.ServletException: Анализ ошибок /sample0.xhtml: Ошибка трассировки [строка: 14] Ссылка на объект «relVerMin» должна заканчиваться символом ';' разделитель. (relVerMin был моим вторым параметром, например: «.../delrel.xhtml? relVerMaj = 1 & relVerMin = 0») – egbokul