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].





