File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Bean related exercise question

 
Rajendra Nath
Greenhorn
Posts: 27
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
DOUBT ON BEAN RELATED STANDARD ACTION EXERCISE(page 416 0f HFSJ)
Given:
<jsp:useBean id="person" type="foo.employee">
<jsp:setProperty name="person" property="name" value="Fred" ?>
</jsp:useBean>
Name is:<jsp:getProperty name="person" property="name" ?>
..............................................................................
[Here class Employee extends an abstract class Person]

and the related servlets are:

(1) foo.Person p=new foo.Employee();
p.setName("Evan");
request.setAttribute("person",p);


second servlet

(2) foo.Employee p=foo.Employee();
p.setName("Evan");
request.setAttribute("person",p);

The answers given are:

(1) fails at request time. the person attribute is stored at request scope.

(2)
and the second one works fine and prints out "evan".

But i find them contradictory answers. Since, both attributes are request scope. Both should fail.
 
Saurabh Kumar
Ranch Hand
Posts: 56
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
You are right, I tried the code with different combinations.

The following combination gives error @ runtime in both cases:
 
Saurabh Kumar
Ranch Hand
Posts: 56
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
You are right, I tried the code with different combinations.

The following combination gives error @ runtime in both cases:
JSP code:
<jsp:useBean id="person" type="com.enrolment.Employee" >
<jsp:setProperty name="person" property="name" value="Fred" />
</jsp:useBean>
Name is:<jsp:getProperty name="person" property="name" />

Case 1: Servlet code:
Person p=new Employee();
p.setName("Evan");
req.setAttribute("person",p);

Result: Runtime error[bean person not found within scope ]

case 2: Servlet code
Employee p=new Employee();
p.setName("Evan");
req.setAttribute("person",p);

Result: Runtime error[bean person not found within scope ]

However if you add scope="request" in the useBean action like:
<jsp:useBean id="person" type="com.enrolment.Employee" scope="request">

Then the result is : Name is:Evan in both the cases.

Please correct me if I am wrong.

Thanks and regards,
Saurabh
 
Rajendra Nath
Greenhorn
Posts: 27
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi saurabh...
that's what i needed. our answers are correct.
 
Kishore Balla
Ranch Hand
Posts: 165
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic