Bonjour,
J'ai un écran sous Struts 2 dans lequel je souhaite avoir des onglets. J'utilise pour cela le composant sx:tabbedpanel de dojo qui me permet de charger l'onglet sélectionné en Ajax. Lorsque je clique sur Ecran 1 ou Ecran 2 les actions Struts ne sont pas declenchées. Mais lorsque j'affiche la JSP coorespondant à ecranPrincipal.jsp, chacune des actions Struts sont executées les unes après les autres.
mapping Struts :
struts.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
ecranPrincipal.jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="false" /> <constant name="struts.action.extension" value="do" /> <constant name="struts.custom.i18n.resources" value="com.omb.i18n.StrutsResourceBundle" /> <constant name="struts.objectFactory" value="spring" /> <constant name="struts.objectFactory.spring.autoWire" value="name" /> <constant name="struts.i18n.encoding" value="ISO-8859-1" /> <constant name="struts.i18n.reload" value="false" /> <constant name="struts.configuration.xml.reload" value="false" /> <constant name="struts.locale" value="fr" /> <constant name="struts.multipart.maxSize" value="100000000000" /> <constant name="struts.enable.SlashesInActionNames" value="true" /> <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/> <constant name="struts.codebehind.classSuffix" value="Controller"/> <constant name="struts.codebehind.action.checkImplementsAction" value="false"/> <constant name="struts.codebehind.action.checkAnnotation" value="false"/> <constant name="struts.codebehind.action.defaultMethodName" value="index"/> <constant name="struts.configuration.classpath.defaultParentPackage" value="rest-default" /> <package name="default" extends="tiles-default" namespace="/"> <interceptors> <interceptor name="userAware" class="com.omb.interceptor.UserInterceptor" /> <interceptor name="params-filter" class="com.opensymphony.xwork2.interceptor.ParameterFilterInterceptor" /> <interceptor-stack name="defaultStack"> <interceptor-ref name="exception" /> <interceptor-ref name="alias" /> <interceptor-ref name="servletConfig" /> <interceptor-ref name="i18n" /> <interceptor-ref name="chain" /> <interceptor-ref name="modelDriven" /> <interceptor-ref name="fileUpload"> <param name="maximumSize">11204928</param> </interceptor-ref> <interceptor-ref name="staticParams" /> <interceptor-ref name="conversionError" /> <interceptor-ref name="params" /> <interceptor-ref name="prepare" /> <interceptor-ref name="validation" /> <interceptor-ref name="workflow" /> <interceptor-ref name="userAware" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="defaultStack" /> <global-results> <result name="technicalError" type="chain"> errorAction </result> <result name="sessionInvalidError" type="tiles"> sessionInvalid </result> <result name="blank" type="tiles">blank</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="technicalError" /> </global-exception-mappings> <action name="errorAction" class="com.omb.ErrorAction"> <result name="success" type="tiles">errorTile</result> </action> <action name="*Cache" class="com.omb.CacheAction" method="{1}"> <result name="success" type="tiles">resultCache</result> <result name="input" type="tiles">inputCache</result> </action> </package> <package name="omb" extends="default" namespace="/omb"> <action name="*Action" class="com.omb.MyAction" method="{1}"> <result name="ecran1">/jsp/omb/ecran1.jsp</result> <result name="ecran2">/jsp/omb/ecran2.jsp</result> </action> </package> </struts>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="sx" uri="/struts-dojo-tags"%> <s:url id="urlAccueil" value="/jsp/omb/ecranAccueil.jsp"/> <s:url id="urlEcran1" namespace="/omb" action="ecran1Action.do" includeParams="false" /> <s:url id="urlEcran2" namespace="/omb" action="ecran2Action.do" includeParams="false" /> <div class="content"> <sx:tabbedpanel id="tabContainer"> <sx:div id="ongletWelcome" label="Accueil" href="%{urlAccueil}"/> <sx:div id="ongletDelegation" label="Ecran 1" href="%{urlEcran1}" /> <sx:div id="ongletValidation" label="Ecran 2" href="%{urlEcran2}" /> </sx:tabbedpanel> </div>
Partager