Как вызвать метод с Openfaces / JSF без рендеринга страницы? - PullRequest
1 голос
/ 25 мая 2011

Я пытаюсь вызвать метод Save в bean-компоненте с Openfaces 3. Хотя Firefox не отображает страницу, Internet Explorer делает.*

но я тоже пытался o:ajax:

<o:commandLink value="Save" action="#{beanX.save}">
  <h:graphicImage url="/images/save_48.png" />
  <o:ajax event="click" render="@none" />
</o:commandLink>

Есть идеи?


Я нашел способ справиться с использованием стандартных компонентов JSF.Любые идеи, как решить эту проблему с o:commandLink?

Ответы [ 2 ]

1 голос
/ 25 мая 2011

Спасибо, Джигар Джоши. Вы дали мне подсказку ключа. Работает с такими строками кода:

<h:commandLink value="Save">
  <h:graphicImage url="/images/save_48.png" />
  <f:ajax event="click" render="@none" listener="#{beanX.save}" />
</h:commandLink>

Я был на этом сайте раньше, я не думал, что o:commandLink может не справиться с этим, может быть ошибкой?

Использование h:commandLink вместо o:commandLink и f:ajax с атрибутом listener решило мою проблему.

1 голос
/ 25 мая 2011

Вы можете использовать атрибут <f:ajax> и render в jsf2.0

<h:form> 
      <h:inputText value="#{managedBean.val1}" > 
         <f:ajax event="keyup" render="result" listener="#{managedBean.someThingToDoListener}"/> 
      </h:inputText> 
      <h:inputText value="#{managedBean.val2}" > 
        <f:ajax event="keyup" render="result" listener="#{managedBean.someThingToDoListener}"/> 
      </h:inputText> 

      <h:outputText id="result" value="#{managedBean.result}"/>
</h:form>

@ManagedBean(name = "managedBean") 
public class Bean { 
   private String val1; // getter and setter 
   private String val2; // getter and setter 
   private String res; // getter and setter 
   ... 

   public void someThingToDoListener(AjaxBehaviorEvent event) { 
       //res = some processing
    }

}

Также см.

...