Bonjour, je ne sais pas s'il y a beaucoup de spécialistes Struts 2 ici car je n'ai pas de réponse à mes questions en général mais je tente car je suis bloqué. Je développe une application avec un back office permettant entre autres de gérer les utilisateurs du site. De ce fait je protège l'accès à toutes les actions liées au package Struts correspondant par un interceptor :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<interceptors>
            <interceptor name="authentifierInterceptor" class="com.xxxx.admin.AuthentifierInterceptor"/>
        </interceptors>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<action name="lister_utilisateurs" class="com.xxxx.admin.action.UserAdminAction" method="listerUtilisateurs">
            <interceptor-ref name="authentifierInterceptor"/>
            <result>liste_utilisateurs.jsp</result>
            <result name="authentification">login.jsp</result>
            <result name="error">error.jsp</result>
        </action>
<action name="editer_utilisateur" class="com.xxxx.admin.action.UserAdminAction" method="editerUtilisateur">
            <!--<interceptor-ref name="authentifierInterceptor"/>-->
            <result>editer_utilisateur.jsp</result>
            <result name="authentification">login.jsp</result>
            <result name="error">error.jsp</result>
        </action>
 
...
Le problème que je rencontre est que lors du passage de paramètres comme celui-ci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<display:table name="users" id="usertab" defaultsort="1" defaultorder="ascending" requestURI="lister_utilisateurs.do" export="true" pagesize="20">
            <display:setProperty name="basic.msg.empty_list" value="aucun utilisateur"/>
            <display:column property="id" title="n°" sortable="true" headerClass="sortable"/>
            <display:column media="html">
                <s:a action="editer_utilisateur">
                    <s:param name="user.id">${usertab.id}</s:param>
                    <img src="images/effect.png"/>
                </s:a>
            </display:column>
            <display:column property="login" title="login" sortable="true" headerClass="sortable"/>
            <display:column property="password" title="password" sortable="true" headerClass="sortable"/>
        </display:table>
Les paramètres sont inhibés par l'intercepteur et l'action ne reçoit pas la valeur de "user.id" dans cet exemple précis, résultat une nullPointerException et l'action n'est pas traitée. J'ai ré-essayé le traitement en supprimant l'intercepteur dans le struts.xml pour l'action correspondante, et user.id est bien attribuée dans la classe d'action. Mais il faut absolument que je protège ces fonction avec mon intercepteur, quelle serait la solution svp ?