How to pass parameter in value expression and method expression in JSF 2?

Viewed 7605

Here is an quote from Oracle JavaEE 6 tutorial docs for passing parameter in value expression and method expression in JSF 2.

Parameters are supported for both value expressions and method expressions. In the following example, which is a modified tag from guessNumber application, a random number is provided as an argument rather than from user input to the method call:

<h:inputText value="#{userNumberBean.userNumber('5')}"> 

The above example uses a value expression.

And this is the default one:

<h:inputText value="#{userNumberBean.userNumber}">

Bean class -

import java.util.Random;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped; 

@ManagedBean
@SessionScoped
public class UserNumberBean {

    Integer randomInt = null;
    Integer userNumber = null;

    public UserNumberBean() {
        Random randomGR = new Random();
        randomInt = new Integer(randomGR.nextInt(10));
        System.out.println("Duke's number: " + randomInt);
    } 

    public void setUserNumber(Integer user_number) {
        userNumber = user_number;
    }

    public Integer getUserNumber() {
        return userNumber;
    }

}

The following expression is not passing 5 as a parameter to the inputText:

<h:inputText value="#{userNumberBean.userNumber('5')}">

It actually causes an error at run-time.

My question: How do I achieve this ??

3 Answers
Related