*
The moose likes Struts and the fly likes Cannot Find Bean in Scope Request Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "Cannot Find Bean in Scope Request" Watch "Cannot Find Bean in Scope Request" New topic
Author

Cannot Find Bean in Scope Request

JiaPei Jen
Ranch Hand

Joined: Nov 19, 2000
Posts: 1309
It is so stressful for having problems one after another. And I do not have the ability to see the causes of those problem on my own.

The error message that appears in the browser (runtime problem, not compilation problem) is:

'[ServletException in:/frame/content/content.jsp] Cannot find bean PageBeans in scope request'

The message is confusing because PageBeans (plural) is a Collection of PageBean (singular). Upon successful execution of a servlet, PageBeans (plural) is passed in a request scope to help creating a drop down menu in 'content.jsp'. And the 'content.jsp' with the drop-down menu (see the code below) is displayed successfully. PageBean is a regular JavaBean, which currently has only one property called 'name' (I keep it simple for testing purpose).

This problem occurred when I click on the Submit button of this form in the 'content.jsp'. Althouth PageBeans (plural) is used to create a drop-down menu in this form, PageBeans (plural) is irrelevant in the subsequest steps. Why do I get '[ServletException in:/frame/content/content.jsp] Cannot find bean PageBeans in scope request' by clicking on the Submit button of the form?

Partial content.jsp code:

Here is my action mapping for submitting the above form:

The "editTitleForm" is a form-bean in the <form-beans> element of the struts-config.xml file.
Marc Peabody
pie sneak
Sheriff

Joined: Feb 05, 2003
Posts: 4727

My guess is that the submission is failing validation. If it fails validation then it is sent to the input forward, which is the same page... but no longer has the PageBeans in request.


A good workman is known by his tools.
JiaPei Jen
Ranch Hand

Joined: Nov 19, 2000
Posts: 1309
Yeah, thank you for sheding light on the problem I have. My code had worked fine until form validation was added.

I was testing if validation worked. Therefore, I intentionally left all text fields blank, menu not selected, and submit the form. Apprarently, the control returned to the 'content.jsp' due to validation errors.

Q1. How come I do not see validation warning messages? I have prepared validation.xml and put it together with the validator-rules.xml in the AppName/WEB-INF directory. I have also prepared the warning messages in the AppName/WEB-INF/classes/resources/application.properties corresponding to the value of the 'key' attributes.

Q2. What should I do? My action servlet passes this Collection PageBeans in a request scope to create a drop-down menu in the 'content.jsp'. If validation errors occur and the control returns to the 'content.jsp', I have the error message 'cannot find bean PageBeans' in scope request'. How to handle this kind of situation?
Marc Peabody
pie sneak
Sheriff

Joined: Feb 05, 2003
Posts: 4727

1) You would see the error messages if it were not for the exception being thrown.

2) You have 2 options. You can keep calling the db OR you can store the value in a scope greater than request. If it is a common list that does not change, application scope would be a GREAT place.
JiaPei Jen
Ranch Hand

Joined: Nov 19, 2000
Posts: 1309
How do I invalidate the "application". I mean that if I have a session scope, I can code:

session.invalidate();

when session is no longer in use. How do I nullify the objects in an application scope and then invalidate the application?
Marc Peabody
pie sneak
Sheriff

Joined: Feb 05, 2003
Posts: 4727

I know of only a few options on how to invalidate the application.
My favorite is:
getComputer().getPlug().pull();

The point of putting it in application is so that all users can access it. As long as the application is running, you only need one copy.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Cannot Find Bean in Scope Request
 
Similar Threads
The Original Web Page Cannot Be Found After Validation is Turned True
Exception creating bean of class org.dhsinfo. content.AddFileForm: {1}'
Cannot retrieve mapping for action /content/AddLinks
What Are the Causes for Validation Not Doing Anything?
Problem With Using c: Tag to Display Drop-Down Menu