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

Reply via email to