It's magic. I reckon there was another problem or misspelling. Following your
first advice again I put the following lines in my web.xml and all works
well:
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
By default only requests are allowed but no forwards! That's it.
Nils-Helge Garli wrote:
>
> I know that it is not recommended, but since you couldn't get it
> working the other way, I figured that was the closest out of the box
> use case that could work. The proposed dispatcher values did work for
> me. At least the action was found. Got some other problems, but don't
> know if it's related. Have you looked into redirecting and using the
> MessageStoreInterceptor [1]?
>
> Nils-H
>
> [1] - http://struts.apache.org/2.0.14/docs/message-store-interceptor.html
>
> On Fri, Dec 19, 2008 at 9:04 PM, Dirk Forchel <[email protected]>
> wrote:
>>
>> This result type invokes an entire other action, complete with it's own
>> interceptor stack and result. As you can read here
>> (http://struts.apache.org/2.x/docs/action-chaining.html), it is not
>> recommended. I need the dispatcher result to forward to another action
>> with
>> the same interceptor stack (if validation fails, the error message or
>> field
>> error message is important to mee and to the user as well). I don't
>> understand why this quite common task isn't possible in Struts 2. I did
>> this
>> all the time with Struts 1. Any other idea how to solve my problem???
>>
>>
>> Nils-Helge Garli wrote:
>>>
>>> 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 <[email protected]>
>>> 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
>>>>> <[email protected]>
>>>>> 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: [email protected]
>>>>>> For additional commands, e-mail: [email protected]
>>>>>>
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> 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: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Christmas-Riddle-tp21088385p21097555.html
>> Sent from the Struts - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
>
--
View this message in context:
http://www.nabble.com/Christmas-Riddle-tp21088385p21474913.html
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]