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

Reply via email to