2012-03-29 2 views
3

Я использую <p:graphicImage>, как показано ниже:Как сделать р: graphicImage интерактивной и вызывать боб действие

<div id="mapp"> 
    <h3>Country Map</h3>   
    <p:graphicImage id="city" 
        value="#{countryPages_Setup.countryMap}" 
        width="250" 
        height="190"> 

    </p:graphicImage>     
</div> 

Но это не интерактивное изображение. Как я могу сделать это изображение кликабельным, поэтому, когда пользователь нажимает на него, я могу вызвать действие управляемого компонента, которое я хочу.

+0

Вы хотите какую-то карту изображения или только одно действие/ссылку? –

+1

Закройте его в командеLink – rags

+0

Нет, он не работает, я попробовал . Что теперь? Я просто хочу, чтобы я мог щелкнуть по этому изображению. Сейчас он не доступен для кликов. – Basit

ответ

13

Оберните изображение в h:commandLink/h:link:

<h:commandLink action="..."> 
    <p:graphicImage id="city" 
      value="#{countryPages_Setup.countryMap}" 
      width="250" 
      height="190"> 
    </p:graphicImage> 
</h:commandLink> 
+0

:) Спасибо. Но можете ли вы сказать мне, пожалуйста, почему элемент не работает? Средства . Благодарю. – Basit

+0

@Basit У вас есть атрибут 'href' в тэге привязки? –

+0

Нет, я просто пробовал с не . Так это причина? – Basit

1

Если р: graphicImage внутри ар: contentFlow, вы можете использовать следующее:

Для меня, это работает отлично:

<h:form id="imageFlowForm"> 
    <p:contentFlow id="imageContent" value="#{controller.allImages}" var="entry"> 
     <div class="caption">#{entry.name}</div> 
     <p:commandLink styleClass="content" action="#{controller.doAction}" update="detailForm"> 
      <p:graphicImage value="#{entry.imagePreviewUrl}" styleClass="content" width="50px" /> 
      <f:param name="id" value="#{entry.id}" /> 
     </p:commandLink> 
    </p:contentFlow> 
</h:form>