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... :
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
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
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
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;
}
} |
Partager