Bonjour,

Je débute avec Struts 2 et je suis perdu avec la configuration du struts.xml

Voici la structure du site :



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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
http://localhost:8080/AlertMe/views/home/Home.jsp
Car je ne veux pas voir /views/home/Home.jsp mais garder comme URL http://localhost:8080/AlertMe/[/.

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
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
<?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>
Home.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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";
	}
}
Login.java
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
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;
	}
}