Friday, March 13, 2009

How do I instantiate a bean whose constructor accepts parameters using

Question :How do I instantiate a bean whose constructor accepts parameters using
the useBean tag? (JSP)

Answer :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:
&l;% SomeObj x = new SomeObj(...);
bar.FooBean foobar = new FooBean(x);
session.putValue("foobar",foobar);
%> You can now access this bean within any other page that is part of the
same session as: &l;%
bar.FooBean foobar = session.getValue("foobar");
%>
To give the bean "application scope", you will have to place it within the
ServletContext as:
&l;%
application.setAttribute("foobar",foobar);
%>
To give the bean "request scope", you will have to place it within the
request object as:
&l;%
request.setAttribute("foobar",foobar);
%>
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"/

No comments: