Bonjour,
Je débute avec Struts 2 et je suis perdu avec la configuration du struts.xml
Voici la structure du site :
http://img508.imageshack.us/img508/9171/structe.png
J'ai deux problème :
Problème 1.:URL des pages
J'ai une page d'accueil (home.jsp).
Lorsque je tape l'adresse du site : http://localhost:8080/AlertMe/
Je dois afficher le contenu de la page /views/home.Home.jsp.
Cela fonctionne MAIS l'url n'est pas top... :
Car je ne veux pas voir /views/home/Home.jsp mais garder comme URL http://localhost:8080/AlertMe/[/.Code:http://localhost:8080/AlertMe/views/home/Home.jsp
Problème 2 :
Dans ma page home.jsp, j'ai un module login.jsp.
Lorsque je clique sur le boutton Login (submit), il ne me redirige pas vers la page /views/private/welcome.jsp.
De plus, il ne va pas dans la méthode authenticate() de Login.java
Merci de votre aide :)
Vos réponses m'aideront à comprendre le mécanisme !
Voici le code :
Struts.xml
Home.javaCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?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="true" /><!-- set to false for prod --> <constant name="struts.custom.i18n.resources" value="ApplicationResources" /> <package name="root-redirect" namespace="/" extends="struts-default"> <action name="*"> <result type="redirect">/Home</result> </action> <action name="Home" class="actions.home.Home"> <result type="redirect">/views/home/Home.jsp</result> </action> <action name="Login" class="actions.home.Login"> <result name="error">/views/home/Home.jsp</result> <result name="success">/views/private/Welcome.jsp</result> </action> </package> </struts>
Login.javaCode:
1
2
3
4
5
6
7
8
9
10 package actions.home; import actions.base.BaseAction; public class Home extends BaseAction { public String execute() { return "success"; } }
Code:
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 package actions.home; import actions.base.BaseAction; public class Login extends BaseAction { private String username; private String password; public String authenticate() { if (this.username.equals("admin") && this.password.equals("admin")) { addActionMessage("Welcome"); System.out.println("success"); return "success"; } else { //addActionError(getText("error.login")); addActionError("I don't know you, dont try to hack me!"); System.out.println("Error"); return "error"; } } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }