perotom
perotom

Reputation: 913

JSF 2.0 Ajax commandButton execute only

I would like to execute a simple command with ajax but without any inputs. This is my code:

<h:form>
      <h:commandButton class="button" 
                       value="Invite"
                       action="#{trainingController.inviteProfile(p)}">
      </h:commandButton>
</h:form>

The variable p is from a which is filled also via an ajax request. Any ideas how to achieve my goal?

Upvotes: 2

Views: 1357

Answers (1)

wittakarn
wittakarn

Reputation: 3164

You can archive by using f:ajax. The example show below.

XHTML

<?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:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Submit</title>
    </h:head>

    <h:body>
        <h:form>
            <h:commandButton value="Submit" 
                             action="#{coffeeBean.submit('abc')}">
                <f:ajax execute="@this" 
                        render="@this" />
            </h:commandButton>
        </h:form>
    </h:body>

</html>

ManagedBean

@ManagedBean(name = "coffeeBean")
@SessionScoped
public class CoffeeBean implements Serializable {

    public void submit(String s){
        System.out.println("s:" + s);
    }
}

You can see more information about EL library from this like, and this like is present How to check version of EL is server.

Upvotes: 1

Related Questions