How do I instantiate a bean whose constructor accepts parameters using the useBean tag?

Govind Seshadri

Consider the following bean:

package bar;
public class FooBean {
   public FooBean(SomeObj arg) {
    //getters and setters here

The only way you can instantiate this bean within your JSP page is to use a scriptlet. For example, the following snippet creates the bean with session scope:

%   SomeObj x = new SomeObj(...);
        bar.FooBean foobar = new FooBean(x);

You can now access this bean within any other page that is part of the same session as:

      bar.FooBean foobar = session.getValue("foobar");

To give the bean "application scope", you will have to place it within the ServletContext as:


To give the bean "request scope", you will have to place it within the request object as:


If you do not place the bean within the request, session or application scope, the bean can be accessed only within the current JSP page (page scope).

Once the bean is instantiated, it can be accessed in the usual way:

<jsp:getProperty name="foobar" property="someProperty"/>

<jsp:setProperty name="foobar" property="someProperty" value="someValue"/>