yah, this is old school answers. :D
I have resolved the problem already by applying old school technique. :D


On Fri, Jun 26, 2009 at 6:21 PM, Nils-Helge Garli
Hegvik<nil...@gmail.com> wrote:
> Don't have any more ideas, but generally, the message "cannot find
> bean in any scope" means exactly what it says: The bean is not in a
> scope where it can be found. Which means that either it is set in
> request scope, and attempted to be used in a different request
> (typically what happens when you do a redirect), or that it has not
> been set at all. Also, keep in mind that the request/response cycle is
> a little bit different in a portlet than in a regular web application,
> so you might have to re-think what you're trying to do.
>
> Nils-H
>
> On Thu, Jun 25, 2009 at 10:05 AM, Sam Wun<swun2...@gmail.com> wrote:
>> Like I have said before, if I "manually" navigated to the
>> RedirectHellpForm page , then reload the first page (RedirectForm),
>> and press the Submit button from the RedirectForm, it can find the
>> "name" of RedirectHelpForm.
>> My questions is how can I setAttribute("RedirectHelpForm" ...) before
>> navigated to the RedirectHelpForm page??
>>
>> thanks
>> Sam
>>
>> On Thu, Jun 25, 2009 at 5:17 PM, Sam Wun<swun2...@gmail.com> wrote:
>>> I just tried your suggestion,
>>> it doesn't work.
>>> The page flow is:
>>> RedirectAction -> RedirectHelpAction -> RedirectStep3Action
>>>
>>> Here is the RedirectAction.java file:
>>>
>>> import org.apache.commons.logging.LogFactory;
>>>
>>> import javax.portlet.ActionRequest;
>>> import javax.portlet.ActionResponse;
>>> import javax.portlet.PortletConfig;
>>> import javax.portlet.RenderRequest;
>>> import javax.portlet.RenderResponse;
>>>
>>> import org.apache.struts.action.ActionForm;
>>> import org.apache.struts.action.ActionForward;
>>> import org.apache.struts.action.ActionMapping;
>>>
>>> /** @struts.action name="RedirectForm" path="/struts_redirect_portlet/input"
>>>  * attribute="redirectForm"
>>>  * scope="session"
>>>  * input="/portlet/struts_redirect_portlet/input.jsp"
>>>  *
>>>  * @struts.action-forward name="input"
>>> path="/portlet/struts_redirect_portlet/input.jsp" redirect="false"
>>>  * @struts.action-forward name="help"
>>> path="/portlet/struts_redirect_portlet/help.jsp" redirect="false"
>>>  */
>>> public class RedirectAction extends PortletAction {
>>>
>>>        public ActionForward execute(
>>>                        ActionMapping mapping, ActionForm form,
>>> HttpServletRequest req,
>>>                        HttpServletResponse res)
>>>                throws Exception {
>>>
>>>                RedirectForm redirectForm = (RedirectForm) form;
>>>
>>>                String comment = redirectForm.getComment().trim();
>>>               if ( comment.length() > 0) {
>>>                  return mapping.findForward("help");
>>>                }
>>>
>>>                  return mapping.findForward("input");
>>>
>>>        }
>>>
>>>
>>>        public ActionForward render(
>>>                        ActionMapping mapping, ActionForm form,
>>> PortletConfig config,
>>>                        RenderRequest req, RenderResponse res)
>>>                throws Exception {
>>>
>>>                return mapping.findForward("input");
>>>        }
>>> }
>>>
>>> Here is the RedirectHelpAction.java file:
>>>
>>> import javax.servlet.http.HttpServletResponse;
>>>
>>> import javax.portlet.ActionRequest;
>>> import javax.portlet.ActionResponse;
>>> import javax.portlet.PortletConfig;
>>> import javax.portlet.RenderRequest;
>>> import javax.portlet.RenderResponse;
>>>
>>> import org.apache.struts.action.ActionForm;
>>> import org.apache.struts.action.ActionForward;
>>> import org.apache.struts.action.ActionMapping;
>>>
>>>  /***
>>>  * @struts.action name="RedirectHelpForm" 
>>> path="/struts_redirect_portlet/help"
>>>  * attribute="redirectHelpForm"
>>>  * scope="session"
>>>  * input="/portlet/struts_redirect_portlet/help.jsp"
>>>  * @struts.action-forward name="help"
>>> path="/portlet/struts_redirect_portlet/help.jsp" redirect="false"
>>>  * @struts.action-forward name="step3"
>>> path="/portlet/struts_redirect_portlet/step3.jsp" redirect="false"
>>>  */
>>>
>>> public class RedirectHelpAction extends PortletAction {
>>>
>>>        public ActionForward execute(
>>>                        ActionMapping mapping, ActionForm form,
>>> HttpServletRequest req,
>>>                        HttpServletResponse res)
>>>                throws Exception {
>>>                RedirectHelpForm redirectHelpForm = (RedirectHelpForm) form;
>>>                req.getSession().setAttribute("RedirectHelpForm",
>>> redirectHelpForm);
>>>
>>>                String name = redirectHelpForm.getName().trim();
>>>               if ( name.length() > 0) {
>>>                  return mapping.findForward("step3");
>>>                }
>>>
>>>               return mapping.findForward("help");
>>>        }
>>>
>>>        public ActionForward render(
>>>                        ActionMapping mapping, ActionForm form,
>>> PortletConfig config,
>>>                        RenderRequest req, RenderResponse res)
>>>                throws Exception {
>>>
>>>                return mapping.findForward("help");
>>>        }
>>> }
>>>
>>>
>>> On Thu, Jun 25, 2009 at 3:47 PM, Nils-Helge Garli
>>> Hegvik<nil...@gmail.com> wrote:
>>>> Did you try request.getSession().setAttribute("RedirectHelpForm",
>>>> redirectHelpForm)?
>>>>
>>>> Nils-H
>>>>
>>>> On Thu, Jun 25, 2009 at 7:14 AM, Sam Wun<swun2...@gmail.com> wrote:
>>>>> How to do that with session?
>>>>> I am currently setting it in the execute() and render method with the
>>>>> following code:
>>>>> req.setAttribute("RedirectHelpForm",  redirectHelpForm);
>>>>>
>>>>> but this is for request rather than session?
>>>>>
>>>>> Thanks for the suggesion.
>>>>> sam
>>>>>
>>>>> On Thu, Jun 25, 2009 at 3:09 PM, Nils-Helge Garli
>>>>> Hegvik<nil...@gmail.com> wrote:
>>>>>> Haven't looked very deeply into it, but could it be that you're
>>>>>> setting the attribute in the action phase, and trying to access it in
>>>>>> the render phase? That won't work. In that case, you have to set it as
>>>>>> a session attribute, or set some kind of id as a render parameter and
>>>>>> re-fetch the object in the render phase.
>>>>>>
>>>>>> Nils-H
>>>>>>
>>>>>> On Thu, Jun 25, 2009 at 7:03 AM, Sam Wun<swun2...@gmail.com> wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I noticed the setAttribute() method is called too late in one of my
>>>>>>> Action class:
>>>>>>>
>>>>>>> import javax.portlet.PortletConfig;
>>>>>>> import javax.portlet.RenderRequest;
>>>>>>> import javax.portlet.RenderResponse;
>>>>>>>
>>>>>>> import org.apache.struts.action.ActionForm;
>>>>>>> import org.apache.struts.action.ActionForward;
>>>>>>> import org.apache.struts.action.ActionMapping;
>>>>>>>
>>>>>>>  /***
>>>>>>>  * @struts.action name="RedirectHelpForm" 
>>>>>>> path="/struts_redirect_portlet/help"
>>>>>>>  * attribute="redirectHelpForm"
>>>>>>>  * scope="session"
>>>>>>>  * input="/portlet/struts_redirect_portlet/help.jsp"
>>>>>>>  * @struts.action-forward name="help"
>>>>>>> path="/portlet/struts_redirect_portlet/help.jsp" redirect="false"
>>>>>>>  * @struts.action-forward name="step3"
>>>>>>> path="/portlet/struts_redirect_portlet/step3.jsp" redirect="false"
>>>>>>>  */
>>>>>>>
>>>>>>> public class RedirectHelpAction extends PortletAction {
>>>>>>>
>>>>>>>        public ActionForward execute(
>>>>>>>                        ActionMapping mapping, ActionForm form,
>>>>>>> HttpServletRequest req,
>>>>>>>                        HttpServletResponse res)
>>>>>>>                throws Exception {
>>>>>>>                RedirectHelpForm redirectHelpForm = (RedirectHelpForm) 
>>>>>>> form;
>>>>>>>                req.setAttribute("RedirectHelpForm",  redirectHelpForm);
>>>>>>>
>>>>>>>                String name = redirectHelpForm.getName().trim();
>>>>>>>               if ( name.length() > 0) {
>>>>>>>                  return mapping.findForward("step3");
>>>>>>>                }
>>>>>>>
>>>>>>>               return mapping.findForward("help");
>>>>>>>        }
>>>>>>>
>>>>>>>
>>>>>>>        public ActionForward render(
>>>>>>>                        ActionMapping mapping, ActionForm form,
>>>>>>> PortletConfig config,
>>>>>>>                        RenderRequest req, RenderResponse res)
>>>>>>>                throws Exception {
>>>>>>>                RedirectHelpForm redirectHelpForm = (RedirectHelpForm) 
>>>>>>> form;
>>>>>>>                req.setAttribute("redirectHelpForm",  redirectHelpForm);
>>>>>>>
>>>>>>>                return mapping.findForward("help");
>>>>>>>        }
>>>>>>> }
>>>>>>>
>>>>>>> The  consequence of that is resulting a "cannot find bean in any scope".
>>>>>>>
>>>>>>> Actully when the page is died on this reason, I press the back button
>>>>>>> of the browser go back to the previous page, and then pressed the
>>>>>>> Submit button again, the error would go disappear, because the
>>>>>>> RedirectHelpForm bean is alerady populated in the class
>>>>>>> RedirectHelpAction, however not in the class RedirectAction.
>>>>>>> The code of RedirectAction is shown as below:
>>>>>>>
>>>>>>> /** @struts.action name="RedirectForm" 
>>>>>>> path="/struts_redirect_portlet/input"
>>>>>>>  * attribute="redirectForm"
>>>>>>>  * scope="session"
>>>>>>>  * input="/portlet/struts_redirect_portlet/input.jsp"
>>>>>>>  *
>>>>>>>  * @struts.action-forward name="input"
>>>>>>> path="/portlet/struts_redirect_portlet/input.jsp" redirect="false"
>>>>>>>  * @struts.action-forward name="help"
>>>>>>> path="/portlet/struts_redirect_portlet/help.jsp" redirect="false"
>>>>>>>  */
>>>>>>> public class RedirectAction extends PortletAction {
>>>>>>>
>>>>>>>        public ActionForward execute(
>>>>>>>                        ActionMapping mapping, ActionForm form,
>>>>>>> HttpServletRequest req,
>>>>>>>                        HttpServletResponse res)
>>>>>>>                throws Exception {
>>>>>>>
>>>>>>>                RedirectForm redirectForm = (RedirectForm) form;
>>>>>>> //              req.setAttribute("redirectForm",  redirectForm);
>>>>>>>
>>>>>>>                String comment = redirectForm.getComment().trim();
>>>>>>>               if ( comment.length() > 0) {
>>>>>>>                  return mapping.findForward("help");
>>>>>>>                }
>>>>>>>
>>>>>>>                  return mapping.findForward("input");
>>>>>>>
>>>>>>>        }
>>>>>>>
>>>>>>>
>>>>>>>        public ActionForward render(
>>>>>>>                        ActionMapping mapping, ActionForm form,
>>>>>>> PortletConfig config,
>>>>>>>                        RenderRequest req, RenderResponse res)
>>>>>>>                throws Exception {
>>>>>>>
>>>>>>>                return mapping.findForward("input");
>>>>>>>        }
>>>>>>> }
>>>>>>>
>>>>>>> Can anyone tell me how to pre-setAttribute for an upcoming Form in an
>>>>>>> Action class?
>>>>>>> It sounds weried. but I couldn't find a way to get rid of the error.
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>>>>>>> For additional commands, e-mail: user-h...@struts.apache.org
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>>>>>> For additional commands, e-mail: user-h...@struts.apache.org
>>>>>>
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>>>>> For additional commands, e-mail: user-h...@struts.apache.org
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>>>> For additional commands, e-mail: user-h...@struts.apache.org
>>>>
>>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>> For additional commands, e-mail: user-h...@struts.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> For additional commands, e-mail: user-h...@struts.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to