javaee:td3

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
javaee:td3 [2013/11/20 00:05] – [Restructuration de l'index] jcheronjavaee:td3 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 187: Ligne 187:
 ==== Script.js ==== ==== Script.js ====
  
-Associer les items du menu aux actions en *.do en modifiant le fichier script.js :+Associer les items du menu aux actions en *.do (méthodes de la classe **MainController**) en modifiant le fichier script.js :
 <sxh javascript;title:js/script.js> <sxh javascript;title:js/script.js>
 run=function(obj){ run=function(obj){
Ligne 199: Ligne 199:
  
 Modifier les ids des éléments du menu, pour les faire correspondre aux actions (méthodes du contrôleur) : Modifier les ids des éléments du menu, pour les faire correspondre aux actions (méthodes du contrôleur) :
-<sxh html;title:main.jsp;highlight:3>+<sxh html;title:main.jsp;highlight:[3,4,5]>
  <div id="grp-utilisateurs" class="categorie">Utilisateurs</div>  <div id="grp-utilisateurs" class="categorie">Utilisateurs</div>
  <ul id="grp-child-utilisateurs">  <ul id="grp-child-utilisateurs">
- <li id="addUser" class="item"  title="Entrer le login de l'utilisateur à créer">Ajouter</li> + <li id="addUser" class="item" title="Entrer le login de l'utilisateur à créer">Ajouter</li> 
- <li id="frmUpdateUser" class="item" title="Sélectionner l'utilisateur à modifier">Modifier</li> + <li id="updateUser" class="item" title="Sélectionner l'utilisateur à modifier">Modifier</li> 
- <li id="frmDeleteUser" title="Sélectionner l'utilisateur à supprimer" class="item">Supprimer</li>+ <li id="deleteUser" class="item" title="Sélectionner l'utilisateur à supprimer">Supprimer</li>
  <li class="item">Affecter à ...</li>  <li class="item">Affecter à ...</li>
  <li class="item">Liste</li>  <li class="item">Liste</li>
Ligne 217: Ligne 217:
 ==== Ajout d'un utilisateur ==== ==== Ajout d'un utilisateur ====
 contrôleur **addUser**, en remplacement de **action/doAddUser.jsp** contrôleur **addUser**, en remplacement de **action/doAddUser.jsp**
-<sxh java;title:MainController>+<sxh java;title:MainController:addUser>
     /**     /**
      * Ajout d'un utilisateur      * Ajout d'un utilisateur
Ligne 242: Ligne 242:
 Contrôleur **login**, en remplacement de **action/doLogin.jsp** Contrôleur **login**, en remplacement de **action/doLogin.jsp**
  
-<sxh java;title:MainController>+<sxh java;title:MainController:login>
     /**     /**
      * Connexion à l'application après soumission du formulaire frmLogin      * Connexion à l'application après soumission du formulaire frmLogin
Ligne 252: Ligne 252:
     PrintWriter out=getOut(response);     PrintWriter out=getOut(response);
     HttpSession session=getSession(request);     HttpSession session=getSession(request);
- 
  SessionApp sessionApp=Utils.getSessionApp(session);  SessionApp sessionApp=Utils.getSessionApp(session);
  Utils.setOut(sessionApp, out);  Utils.setOut(sessionApp, out);
Ligne 263: Ligne 262:
  if(!sessionApp.isUserLogIn())  if(!sessionApp.isUserLogIn())
  request.setAttribute("bad", true);  request.setAttribute("bad", true);
- printMe(request, response); + else 
- + out.print(JSFormsUtils.get("ajaxMain.do", "", "divMain")); 
 + printMe(request, response);
  }  }
 </sxh> </sxh>
Ligne 272: Ligne 272:
 Contrôleur **printMe**, en remplacement de **action/doPrintMe.jsp** Contrôleur **printMe**, en remplacement de **action/doPrintMe.jsp**
  
-<sxh java;title:MainController> +<sxh java;title:MainController:printMe
-    /**+     /**
      * Affichage de l'utilisateur connecté ou du formulaire de connexion      * Affichage de l'utilisateur connecté ou du formulaire de connexion
      * si aucun utilisateur n'est connecté      * si aucun utilisateur n'est connecté
Ligne 291: Ligne 291:
     cmd.run();     cmd.run();
     out.print("<input class='btn' id='btDisconnect' type='button' value='Déconnexion'>");     out.print("<input class='btn' id='btDisconnect' type='button' value='Déconnexion'>");
 +        out.print(JSFormsUtils.getAndBindTo("#btDisconnect", "click", "disconnect.do","","divMain"));
     }else     }else
-    if(request.getMethod().equalsIgnoreCase("post")&&request.getAttribute("bad")==null){+    if(isPost(request) && request.getAttribute("bad")==null){
     login(request,response);     login(request,response);
- 
     }     }
-    else +    else{ 
-    loadView("forms/frmLogin", request, response); +    loadView("forms/frmLogin.jsp", request, response); 
-     out.print(JSFormsUtils.getAndBindTo("#btDisconnect", "click", "actions/doDisconnect.jsp","","divMain"));+     out.print(JSFormsUtils.postFormAndBindTo("#btnSubmit", "click", "login.do", "frmLogin", "divLogin")); 
 +    }
     }     }
 </sxh> </sxh>
Ligne 376: Ligne 377:
  
 === Contrôleur index === === Contrôleur index ===
-Le contrôleur index correspond à la page d'accueil est fait les traitements qui se faisaient avant dans la page main.jsp : +Le contrôleur index correspond à la page d'accueil et fait les traitements qui se faisaient avant dans la page **main.jsp** 
-Il utilise le contrôleur ajaxMain, dont le rôle est d'assurer l'affichage du menu si l'utilisateur est connecté, dans la div divMain :+Il utilise le contrôleur **ajaxMain**, dont le rôle est d'assurer l'affichage du menu si l'utilisateur est connecté, dans la div **divMain** :
  
 <sxh java;title:MainController:ajaxMain> <sxh java;title:MainController:ajaxMain>
Ligne 403: Ligne 404:
  
 <sxh java;title:MainController:index> <sxh java;title:MainController:index>
-    /** 
-     * Page index de l'application Web 
-     * @param request 
-     * @param response 
-     * @throws IOException 
-     */ 
-    public void index(HttpServletRequest request,HttpServletResponse response) throws IOException{ 
-    PrintWriter out=getOut(response); 
         loadView("mainPages/header.jsp", request, response);         loadView("mainPages/header.jsp", request, response);
-    out.print("<div id='divActiveUser'>"); +    ajaxMain(request, response); 
-    printMe(request, response); +        loadView("mainPages/footer.jsp", request, response); 
-     if(isLogIn(request)){ +    } 
-    loadView("mainPages/main.jsp", request, response); +</sxh>
-     out.print(JSFormsUtils.onDOMReady("(new Forms.Accordion($('grp-child-utilisateurs'),5,24)).attach($('grp-utilisateurs'));"+ +
- "(new Forms.Accordion($('grp-child-groupes'),5,24)).attach($('grp-groupes'));"+
- "(new $selector('#navigation .item','click',false,0,run,{backgroundColor:\"#E8CA7A\",fontWeight:\"bold\"}));"));+
  
 +
 +==== Modification d'utilisateur ====
 +La modification se fait en trois étapes :
 +  - Choix de l'utilisateur à modifier (avec affichage de la vue **frmChoiceUser.jsp**)
 +  - Affichage de l'utilisateur et modification de ses attributs dans **frmUpdateUser.jsp**
 +  - Post du formulaire et modification de l'objet Utilisateur
 +
 +=== Vues ===
 +<sxh html;title:WEB-INF/forms/frmChoiceUser.jsp>
 +<%@page import="web.gui.ConvertToHtml"%>
 +<%@page import="web.technics.Utils"%>
 +<%@page import="net.bo.SessionApp"%>
 +<%@ page language="java" contentType="text/html; charset=UTF-8"
 +    pageEncoding="UTF-8"%>
 +<form name="frmUserChoice" id="frmUserChoice">
 + <%
 + SessionApp sessionApp=Utils.getSessionApp(session);
 + out.print(ConvertToHtml.mapToSelect(sessionApp.getApplication().getLesUtilisateurs(), "choiceLogin",10));
 + %>
 +</form>
 +<input type="button" id="btUserChoice" class="btn" value="Modifier...">
 +<div id="divUserToUpdate">
 +</div>
 +</sxh>
 +
 +<sxh html;title:WEB-INF/forms/frmUpdateUser.jsp>
 +<%@page import="net.bo.Utilisateur"%>
 +<%@page import="web.technics.JSFormsUtils"%>
 +<%@page import="static web.technics.WRequest.*" %>
 +<%@ page language="java" contentType="text/html; charset=UTF-8"
 +    pageEncoding="UTF-8"%>
 +<%Utilisateur u=GETAttr(request, "user", new Utilisateur(""));%>
 +<fieldset>
 +<legend>Modifier un Utilisateur :</legend>
 +<form name="frmUpdateUser" id="frmUpdateUser">
 + <input type="hidden" id="originalLogin" name="originalLogin" value="<%=u.getName()%>">
 + <label>Login: <input type="text" id="login" name="login" value="<%=u.getName()%>"></label>
 + <label>Nom :<input type="text" id="firstName" name="firstName" value=<%=u.getFirstName()%>></label>
 + <label>Prénom :<input type="text" id="lastName" name="lastName" value=<%=u.getLastName()%>></label>
 +
 +</form>
 +<input type="button" class="btn" value="Modifier l'utilisateur" id="btUpdateUser">
 +</fieldset>
 +</sxh>
 +
 +=== Contrôleur updateUser ===
 +
 +<sxh java;title:MainController:updateUser>
 +    public void updateUser(HttpServletRequest request, HttpServletResponse response) throws IOException{
 +    PrintWriter out=getOut(response);
 +    if(isPost(request)){
 +    if(GET(request,"choiceLogin")!=null){
 +        Utilisateur user= GatewaySession.getOneUser(request, GET(request,"choiceLogin"));
 +    request.setAttribute("user", user);
 +    loadView("forms/frmUpdateUser.jsp", request, response);
 +    out.print(JSFormsUtils.postFormAndBindTo("#btUpdateUser", "click", "updateUser.do", "frmUpdateUser","divResultCommande"));
 +    }else{
 +    if(GET(request,"login")!=null && GET(request,"originalLogin")!=null){
 +    Utilisateur user= GatewaySession.getOneUser(request, GET(request,"originalLogin"));
 +    user.setName(GET(request,"login"));
 +    user.setFirstName(GET(request, "firstName"));
 +    user.setLastName(GET(request, "lastName"));
 +    out.print("Utilisateur "+user+" modifié");
 +    out.print(JSFormsUtils.setHtml("divUserToUpdate"));
 +    out.print(JSFormsUtils.get("updateUser.do", "", "divFrmCommande"));
 +    }
 +    }
 +    }else{
 +    loadView("forms/frmChoiceUser.jsp", request, response);
 + out.print(JSFormsUtils.postFormAndBindTo("#btUserChoice", "click", "updateUser.do", "frmUserChoice", "divUserToUpdate"));
     }     }
-    out.print("</div>"); 
-     
-        loadView("mainPages/footer.jsp", request, response); 
     }     }
 +</sxh>
 +
 +
 +==== Utilitaires ====
 +
 +=== Dans MainController ===
 +Pour simplifier le test sur l'authentification :
 +
 +<sxh java;title:MainController:updateUser>
 +    /**
 +     * Retourne vrai si l'utilisateur est logué
 +     */
 +    protected boolean isLogIn(HttpServletRequest request){
 +    SessionApp sessionApp=Utils.getSessionApp(request);
 +        return sessionApp.isUserLogIn();
 +    }
 +</sxh>
 +
 +=== WRequest ===
 +Pour faciliter la récupération d'attributs ou de paramètres de la requête :
 +
 +<sxh java;title:web.technics.WRequest>
 +package web.technics;
 +
 +import javax.servlet.http.HttpServletRequest;
 +
 +public class WRequest {
 + /**
 + * Retourne le paramètre de nom parameterName de la requête
 + * @param request requête HTTP
 + * @param parameterName nom du paramètre
 + * @return
 + */
 + public static String GET(HttpServletRequest request,String parameterName){
 + return request.getParameter(parameterName);
 + }
 + /**
 + * Retourne le paramètre de nom parameterName de la requête et retourne defaultValue si le paramètre n'est pas trouvé
 + * @param request requête HTTP
 + * @param parameterName nom du paramètre
 + * @param defaultValue valeur par défault
 + * @return paramètre de la requête
 + */
 + @SuppressWarnings("unchecked")
 + public static <T> T  GET(HttpServletRequest request,String parameterName,T defaultValue){
 + T result;
 + String p=request.getParameter(parameterName);
 + if(p==null)
 + result= defaultValue;
 + else{
 + try{
 + result=(T)request.getParameter(parameterName);
 + }catch(Exception e){
 + result= defaultValue;
 + }
 + }
 + return result;
 + }
 + /**
 + * Retourne l'attribut de nom attributeName de la requête
 + * @param request requête HTTP
 + * @param attributeName nom de l'attribut
 + * @return
 + */
 + public static Object GETAttr(HttpServletRequest request,String attributeName){
 + return request.getAttribute(attributeName);
 + }
 + /**
 + * Retourne l'attribut de nom attributeName de la requête et retourne defaultValue si l'attribut n'est pas trouvé
 + * @param request requête HTTP
 + * @param attributeName nom de l'attribut
 + * @param defaultValue valeur par défault
 + * @return
 + */
 + @SuppressWarnings("unchecked")
 + public static <T> T  GETAttr(HttpServletRequest request,String attributeName,T defaultValue){
 + T result=(T)request.getAttribute(attributeName);
 + if(result==null)
 + result= defaultValue;
 + return result;
 + }
 +}
 +
 </sxh> </sxh>
  • javaee/td3.1384902304.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)