IV. Exemple 03 - Les clés de navigation▲
IV-A. Le projet Netbeans▲
- en [1] :
- [web.xml] : le fichier de configuration de l'application web
- [struts.xml] : le fichier de configuration de Struts
- [Action1.java] : l'unique action de l'application
- [Page1.jsp, Page2.jsp] : les deux vues de l'application
- en [2] : affichage de [Page1.jsp]
- en [3] : affichage de [Page2.jsp]
IV-B. Le fichier [struts.xml]▲
C'est le suivant :
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?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>
<package
name
=
"default"
namespace
=
"/"
extends
=
"struts-default"
>
<default-action-ref
name
=
"index"
/>
<action
name
=
"index"
>
<result
type
=
"redirectAction"
>
<param
name
=
"actionName"
>
Action1</param>
<param
name
=
"namespace"
>
/actions</param>
</result>
</action>
</package>
<package
name
=
"actions"
namespace
=
"/actions"
extends
=
"struts-default"
>
<action
name
=
"Action1"
class
=
"actions.Action1"
>
<result
name
=
"page1"
>
/vues/Page1.jsp</result>
<result
name
=
"page2"
>
/vues/Page2.jsp</result>
</action>
</package>
</struts>
- lignes 17-19 : la méthode execute de [Action1] va rendre deux clés de navigation :
- page1 qui fera afficher la vue /vues/Page1.jsp
- page2 qui fera afficher la vue /vues/Page2.jsp
IV-C. L'action [Action1]▲
Elle est analogue à celle de l'exemple précédent :
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
package
actions;
import
com.opensymphony.xwork2.ActionSupport;
public
class
Action1 extends
ActionSupport{
// modèle de l'action
private
String param1=
"valeur1"
;
private
String param2=
"valeur2"
;
@Override
public
String execute
(
){
// choix aléatoire entre deux vues
int
i=(
int
)(
Math.random
(
)*
2
);
if
(
i==
0
){
return
"page1"
;
}
else
{
return
"page2"
;
}
}
// getters et setters
...
}
- lignes 12-14 : la méthode execute rend de façon aléatoire les clés page1 et page2 attendues.
IV-D. Les vues Jsp▲
Page1.jsp
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<%@page
contentType
=
"text/html"
pageEncoding
=
"UTF-8"
%>
<%@ taglib
prefix
=
"s"
uri
=
"/struts-tags"
%>
<!DOCTYPE html>
<html>
<head>
<meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=UTF-8"
>
<title>
Page1</title>
</head>
<body>
<h1>
Page1</h1>
param1=<
s
:
property
value
=
"param1"
/><br/>
</body>
</html>
Ligne 11, la page affiche la valeur du champ param1 de [Action1].
Page2.jsp
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<%@page
contentType
=
"text/html"
pageEncoding
=
"UTF-8"
%>
<%@ taglib
prefix
=
"s"
uri
=
"/struts-tags"
%>
<!DOCTYPE html>
<html>
<head>
<meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=UTF-8"
>
<title>
Page2</title>
</head>
<body>
<h1>
Page2</h1>
param2=<
s
:
property
value
=
"param2"
/><br/>
</body>
</html>
Ligne 11, la page affiche la valeur du champ param2 de [Action1].