In that case, I'm out of ideas. If referrer always is an action, have
you tried using the chain result type instead? Probably needs a bit
more parsing of the action and namespace (or look it up from the
action invocation) though.

Nils-H

On Fri, Dec 19, 2008 at 11:59 AM, Dirk Forchel <dirk.forc...@exedio.com> wrote:
>
> Good guess. I've added both attributes to my web.xml. But it doesn't work
> either. If the context path (Tomcat server.xml) of my webapp is "" the
> result is
>
> HTTP Status 404 - /welcome.action
> type Status report
> message /welcome.action
> description The requested resource (/welcome.action) is not available.
>
> If I change the context path to "/" in my server.xml the result is:
>
> HTTP Status 404 - //welcome.action
> type Status report
> message //welcome.action
> description The requested resource (//welcome.action) is not available.
>
> If I would change the context path to "/demo", the error would be:
>
> HTTP Status 404 - /demo/welcome.action
> type Status report
> message /demo/welcome.action
> description The requested resource (/demo/welcome.action) is not available.
>
> Any other idea what's going on here? Maybe something with the
> RequestDispatcher class?
>
>
> Nils-Helge Garli wrote:
>>
>> I think the error is in your web.xml. Try adding
>>
>> <dispatcher>REQUEST</dispatcher>
>> <dispatcher>FORWARD</dispatcher>
>>
>> in the filter mapping configuration for the struts 2 filter.
>>
>> Nils-H
>>
>> On Fri, Dec 19, 2008 at 10:38 AM, Dirk Forchel <dirk.forc...@exedio.com>
>> wrote:
>>>
>>> Here is my riddle: Why does a dispatch forward to an absolute URL-path
>>> e.g.
>>> "http://localhost:9001/welcome.action"; not work. Using a relative URL
>>> like
>>> "/welcome.action" doesn't work either. Only something dispatch forwards
>>> like
>>> "/jsp/pages/welcome.jsp" or similiar (a relative URL with a JSP resource)
>>> works for me.
>>> But I wanna use Tiles and therefore a forward to an "Action" rather than
>>> a
>>> JSP. I have a search form included in various and different pages
>>> (different
>>> JSPs and Tiles-definitions). If input validation fails on my search
>>> action,
>>> the field error should be displayed on the same page the input error
>>> occured.
>>> The seach form is used on almost every page of my web application.
>>> This problem drives me almost insane!!!
>>> Everyone can test it by yourself.
>>> Here is my Test-Configuration (without Tiles) and almost the complete
>>> code:
>>>
>>>
>>> struts.xml:
>>>
>>> <struts>
>>>   <package name="demostore" extends="struts-default">
>>>      <default-interceptor-ref name="paramsPrepareParamsStack"/>
>>>
>>>      <default-action-ref name="welcome"/>
>>>
>>>      <global-results>
>>>         <result name="input">${referer}</result>
>>>      </global-results>
>>>
>>>      <action name="search" class="com.foo.SearchAction">
>>>         <result>/jsp/pages/search.result.jsp</result>
>>>      </action>
>>>
>>>      <action name="*" class="com.foo.action.ForwardAction">
>>>         <result>/jsp/pages/{1}.jsp</result>
>>>      </action>
>>>   </package>
>>> </struts>
>>>
>>>
>>> BaseAction.java:
>>>
>>> public class BaseAction extends ActionSupport implements
>>> ServletRequestAware, Preparable
>>> {
>>>   private String referer;
>>>   protected HttpServletRequest request;
>>>
>>>   @Override
>>>   public void setServletRequest(HttpServletRequest request)
>>>   {
>>>      this.request = request;
>>>   }
>>>
>>>   @Override
>>>   public void prepare() throws Exception
>>>   {
>>>      referer = request.getHeader( "Referer" );
>>>      if (referer==null)
>>>         referer = request.getContextPath();
>>>   }
>>>
>>>   public String getReferer()
>>>   {
>>>      // THIS WORKS
>>>      // return "/jsp/pages/welcome.jsp";
>>>      // THIS DOES'NT WORK
>>>      // return "/welcome.action";
>>>      // THIS DOESN'T WORK EITHER
>>>      return referer;
>>>   }
>>> }
>>>
>>> ForwardAction.java:
>>>
>>> public class ForwardAction extends BaseAction
>>> {
>>>     public String execute() throws Exception
>>>     {
>>>        addToHistory(getServletRequest());
>>>        return executeInternal();
>>>     }
>>>
>>>     protected void addToHistory(HttpServletRequest request)
>>>     {
>>>         // Request History
>>>         // History.addEntry(request);
>>>     }
>>>
>>>     protected String executeInternal() throws Exception
>>>     {
>>>         // forward actios should overwrite this method and do some
>>> additional work
>>>         return SUCCESS;
>>>     }
>>> }
>>>
>>> SearchAction.java:
>>>
>>> public class SearchAction extends BaseAction
>>> {
>>>   private String searchString;
>>>
>>>   public String execute() throws Exception
>>>   {
>>>      // DO SOME SEARCH
>>>      return SUCCESS;
>>>   }
>>>
>>>   public void setSearchString(String searchString)
>>>   {
>>>      this.searchString = searchString;
>>>   }
>>>
>>>   public String getSearchString()
>>>   {
>>>      return searchString;
>>>   }
>>> }
>>>
>>> welcome.jsp:
>>>
>>> ...
>>> <html>
>>>   <head>
>>>      <title>Welcome</title>
>>>   </head>
>>>   <body>
>>>      Welcome
>>>      <s:include value="form.search.jsp" />
>>>   </body>
>>> </html>
>>>
>>> form.search.jsp:
>>>
>>> ...
>>> <s:form action="search">
>>>   <label for="searchString">
>>>      <s:text name="search.term"/>
>>>   </label>
>>>   <s:textfield name="searchString" />
>>>   <s:submit key="search.submit" />
>>> </s:form>
>>>
>>> SearchAction-validation.xml:
>>> ...
>>> <validators>
>>>   <field name="searchString">
>>>      <field-validator type="requiredstring">
>>>         <message key="error.searchstring.required"/>
>>>      </field-validator>
>>>   </field>
>>> </validators>
>>>
>>> That's it. So where is the error?
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Christmas-Riddle-tp21088385p21088385.html
>>> Sent from the Struts - User mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>
>>
>>
>
> --
> View this message in context: 
> http://www.nabble.com/Christmas-Riddle-tp21088385p21089437.html
> Sent from the Struts - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> 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