Как открыть произвольный URL в новом окне с помощью кнопки PrimeFaces
у меня ниже выходного звена выполняет свою работу:
<h:outputLink value="#{verDocumentoController.url()}" target="_blank">
show document
</h:outputLink>
Он открывает URL-адрес, полученный как свойство bean в новом окне.
тем не менее, я хотел бы превратить ссылку в кнопку в PrimeFaces look'n'feel. Я попробовал, как показано ниже:
<p:commandButton value="show document" action="#{verDocumentoController.url()}"
onclick="form.target='_blank'" ajax="false" />
но он только открывает текущую страницу в новом окне, а не URL, указанный как свойство bean. Как я могу этого достичь?
1 ответов
на <p:commandButton>
в основном отправляет запрос POST на URL-адрес, указанный его родителем <h:form>
, который по умолчанию действительно является текущим URL-адресом запроса (вы знаете, "postback"). The action
атрибут в основном вызывает метод bean и использует возвращаемое значение в качестве результата навигационного случая. URL-адрес не обязательно представляет собой разумный результат навигационного случая.
просто использовать window.open()
вместо простого <p:button>
.
<p:button value="show document"
onclick="window.open('#{verDocumentoController.url()}');return false;" />
вы также можете сделать это на <p:commandButton>
, но это излишне усложняет дело.