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/22 02:14] – [Restructuration de l'index] jcheronjavaee:td3 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 408: Ligne 408:
         loadView("mainPages/footer.jsp", request, response);         loadView("mainPages/footer.jsp", request, response);
     }     }
 +</sxh>
 +
 +
 +==== 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"));
 +    }
 +    }
 +</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.1385082847.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)