struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lukasz Lenart <lukaszlen...@apache.org>
Subject Re: Actions as welcome files
Date Fri, 31 May 2013 19:00:24 GMT
2013/5/31 Antonio Sánchez <ingantosan@gmail.com>:
> I have to move struts.xml (originally inside resources folder) inside maven
> 'main' folder to make it work and avoid
>
>     HTTP 404 - There is no Action mapped for namespace [/] and action name
> [] associated with context path [/Hello_World_Struts2_Mvn].
>
> but then struts.xml is unreachable in Netbeans project window.

You shouldn't do that ... struts.xml must lay in resource folder (it
will be copied to WEB-INF/classes during package phase)


> I can't find the right way. I have updated libs to the latest ones.
> struts.xml is in WEB-INF/classes in war file deployed by Netbeans (Tomcat
> 7).
>
> Bellow struts and web xmls
>
> <struts>
>     <!-- Include webwork default (from the Struts JAR). -->
>     <include file="struts-default.xml"/>

Struts2 include this file by default, you don't have to do this (it
can even be source of unpredictable problems)

>     <!-- Configuration for the default package. -->
>     <package name="default" extends="struts-default">
>
>         <!-- Default interceptor stack. -->
>         <default-interceptor-ref name="paramsPrepareParamsStack"/>
>         <action name="index"
> class="com.aurifa.struts2.tutorial.action.EmployeeAction" method="list">
>             <result name="success">/WEB-INF/jsp/employees.jsp</result>
>             <!-- we don't need the full stack here -->
>             <interceptor-ref name="basicStack"/>
>         </action>
>         <action name="crud"
> class="com.aurifa.struts2.tutorial.action.EmployeeAction" method="input">
>             <result name="success" type="redirectAction">index</result>
>             <result name="input">/WEB-INF/jsp/employeeForm.jsp</result>
>             <result name="error">/WEB-INF/jsp/error.jsp</result>
>         </action>
>     </package>
> </struts>

You have two options here:
- define action with blank name (I don't like it as this is some kind
trick and not expected behaviour), ie.
    <action name=""
class="com.aurifa.struts2.tutorial.action.EmployeeAction"
method="input">
- define default-action-ref per package
    <default-action-ref name="index/>

<welcome-files/> will not work as most of the containers doesn't allow
forwarding to non-static resources, you can try to define struts2
filter as below to achieve that:

<filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
</filter-mapping>


Regards
-- 
Łukasz
+ 48 606 323 122 http://www.lenart.org.pl/

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


Mime
View raw message