Подтвердить что ты не робот

Укладка одной внешней ссылки JSF, чтобы она выглядела как кнопка

Графики 3.5, Omnifaces 1.6

У меня есть группа кнопок с иконками. На кнопках есть действие, которое нужно сделать на странице (например, удаление или добавление новой строки в datatable). Я хочу добавить новое "что-то", которое выглядит точно так же, как кнопки, но с внешней ссылкой. Если я нажму на эту новую кнопку, откроется новая вкладка/окно. Для этого я использую p:commandButton и h:outputLink.

<p:commandButton action="#{bean.do1}" icon= ...>
<p:commandButton action="#{bean.do2}" icon= ...>

<h:outputLink value="#{bean.url}" target="_blank"> 
  <i class="icon-external-link"></i> 
</h:outputLink>

Как я могу это достичь?

4b9b3361

Ответ 1

  • Используйте p:button, который действует как ссылка:

    <p:button href="#" onclick="location.href='http://www.stackoverflow.com'; return false;" value="Go to SO" />
    
  • Если вы хотите пустой цели и, начиная с Primefaces 3.5.5, есть шанс использовать target:

    <p:button target="_blank" href="#" onclick="location.href='http://www.stackoverflow.com'; return false;" value="Go to SO" />
    
  • Когда вы находитесь ниже PF 3.5.5, вы можете сделать некоторый javascript, чтобы открыть его в пустой цели:

    <p:button value="Go to SO" onclick="window.open('http://www.stackoverflow.com')" />
    
  • Все варианты выше используют javascript, чтобы изменить браузер расположение окна. Чтобы создать бот-урожай HTML link, используйте h:outputLink (или просто простой элемент HTML a), и стирайте его с помощью классов Primefaces:

    <h:outputLink value="http://www.stackoverflow.com"
        styleClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only">
        <span class="ui-button-text">Go to SO</span>
    </h:outputLink>
    

См. также: