IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

Question de débutant !


Sujet :

Struts 1 Java

  1. #1
    Membre habitué Avatar de domiq44
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 301
    Points : 135
    Points
    135
    Par défaut Question de débutant !
    Bonjour,

    Excusez le tritre mais ma question est d'ordre générale en Struts 1.2.
    Et j'ajoute que je débute en Struts
    Je viens d'être formé mais j'ai fini par m'y perdre !!!!

    J'ai 2 objets distincts Pipo et Toto.
    Pour simplifier, ces objets possèdent les propriétés suivantes :
    • un id,
    • un libellé,
    • et un flag d'archivage.


    J'ai un formulaire PipoForm qui présente la liste des objets Pipo non archivés.
    J'ai un formulaire TotoForm qui présente la liste des objets Toto non archivés.

    Ces 2 objets peuvent être archivés via un bouton présent dans ces formulaires.

    Apparait alors un nouveau formulaire où l'on saisit un commentaire par exemple.
    Après appui sur le bouton validation, on retourne vers la liste d'origine dans laquelle l'objet qui vient d'être archivé n'est plus présent.

    Comment peut on faire cela ?
    Quelqu'un peut-il m'aider ?

    J'avoue être un peu perdu, surtout dans la navigation des formulaires !!!

    Merci.

  2. #2
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    Trop la flemme d'expliquer...
    Bon alors que je comprenne bien.
    Apparait alors un nouveau où l'on saisit un commentaire par exemple.
    Après avoir submité ton form tu affiche direct un autre form pour saisir un commentaire ?

  3. #3
    Membre habitué Avatar de domiq44
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 301
    Points : 135
    Points
    135
    Par défaut
    Merci jadey de t'intéresser à mon problème.

    Oui, un nouveau formulaire dans le quel on valorise un commentaire indiquant la raison de l'archivage. Mais cela reste un exemple qui est identique à mon problème réel.

    - Page contenant la liste des Pipos non archivés (ex: Pipo1, Pipo4, Pipo6; car les Pipo2, Pipo3, Pipo5 sont déjà archivés)
    - Sélection d'un Pipo particulier (ex: Pipo4)
    - Appui sur le bouton "Archiver"
    - Nouvelle page de validation.
    - Saisie du commentaire (ex: "blablabla")
    - Appui sur le bouton "valider"
    - retour à la page contenant la liste des Pipos non archivés (ex: Pipo1, Pipo6; car Pipo4 a été archivé)

    Le problème, c'est que l'on peut arriver dans la page de validation, en partant de la liste des Pipos, comme de la liste des Totos; et que l'on doir repartir dans la bonne liste et la rafraichir !!!

    D'où la difficulté !!!!

    Merci.

  4. #4
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    Bon ça à pas l'air super compliqué.
    - Page contenant la liste des Pipos non archivés (ex: Pipo1, Pipo4, Pipo6; car les Pipo2, Pipo3, Pipo5 sont déjà archivés)
    Tu code une méthode "search" dans ton action qui fais un select sur les pipos (ou totos) non archivés et renvoi si tout se passe bien un ArrayList rempli de beans pipos (ou totos) vers une jsp "vuePTNonArchives.jsp"
    Commence déjà par ça on verra bien à quels soucis techniques tu te heurtes.

  5. #5
    Membre habitué Avatar de domiq44
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 301
    Points : 135
    Points
    135
    Par défaut
    Bonsoir,

    Voici ce que j'ai fait.

    La classe :

    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
    39
    40
    41
    42
    43
    44
    45
    46
     
    package metier;
     
    public class Pipo {
    	private long id;
    	private String label;
    	private boolean archived;
     
    	public Pipo() {
    	}
     
    	public long getId() {
    		return id;
    	}
     
    	public Pipo(long id, String label, boolean archived) {
    		this.id = id;
    		this.label = label;
    		this.archived = archived;
    	}
     
    	public void setId(long id) {
    		this.id = id;
    	}
     
    	public String getLabel() {
    		return label;
    	}
     
    	public void setLabel(String label) {
    		this.label = label;
    	}
     
    	public boolean isArchived() {
    		return archived;
    	}
     
    	public void setArchived(boolean archived) {
    		this.archived = archived;
    	}
    	@Override
    	public String toString() {
    		return "Pipo [id=" + id + ", label=" + label + ", archived=" + archived
    				+ "]";
    	}
    }
    L'action :

    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
     
    package actions;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    import database.IPipoDao;
     
    public class ListPipoAction extends Action {
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
     
    		IPipoDao dao = database.PipoDao.getInstance();
    		request.setAttribute("listPipo", dao.getListNonArchives());
     
    		return mapping.findForward("success");
     
    	}
    }
    Un bouchon pour les accès base de données:

    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
     
    package database;
     
    import java.util.ArrayList;
     
    import metier.Pipo;
     
    public class DBUtil {
    	private static DBUtil instance;
    	ArrayList<Pipo> listPipo;
     
    	private DBUtil() {
    	}
     
    	private void init() {
    		listPipo = new ArrayList<Pipo>();
    		listPipo.add(new Pipo(1, "Pipo1", false));
    		listPipo.add(new Pipo(2, "Pipo2", true));
    		listPipo.add(new Pipo(3, "Pipo3", true));
    		listPipo.add(new Pipo(4, "Pipo4", false));
    		listPipo.add(new Pipo(5, "Pipo5", true));
    	}
     
    	public static DBUtil getInstance() {
    		if (null == instance) {
    			instance = new DBUtil();
    			instance.init();
    		}
    		return instance;
    	}
    }
    l'interface DAO :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    package database;
     
    import java.util.ArrayList;
     
    import metier.Pipo;
     
    public interface IPipoDao {
    	public Pipo find(long id);
    	public ArrayList<Pipo> getListNonArchives();
    }
    et son implémentation :

    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
    39
     
    package database;
     
    import java.util.ArrayList;
     
    import metier.Pipo;
     
    public class PipoDao implements IPipoDao {
    	private static PipoDao instance;
    	private static DBUtil dbInstance;
     
    	private PipoDao() {
    	}
     
    	public static PipoDao getInstance() {
    		if (null == instance) {
    			instance = new PipoDao();
    			dbInstance = DBUtil.getInstance();
    		}
    		return instance;
    	}
     
    	public Pipo find(long id) {
    		for (Pipo pipo : dbInstance.listPipo) {
    			if (id == pipo.getId())
    				return pipo;
    		}
    		return null;
    	}
     
    	public ArrayList<Pipo> getListNonArchives() {
    		ArrayList<Pipo> listPipo = new ArrayList<Pipo>();
    		for (Pipo pipo : dbInstance.listPipo) {
    			if (false == pipo.isArchived())
    				listPipo.add(pipo);
    		}
    		return listPipo;
    	}
    }
    le bean :

    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
     
    package forms;
     
    import java.util.ArrayList;
     
    import metier.Pipo;
     
    import org.apache.struts.action.ActionForm;
     
    public class ListPipoForm extends ActionForm {
    	private static final long serialVersionUID = 1L;
    	private ArrayList<Pipo> listPipo;
     
    	public ArrayList<Pipo> getListPipo() {
    		return listPipo;
    	}
     
    	public void setListPipo(ArrayList<Pipo> listPipo) {
    		this.listPipo = listPipo;
    	}
    }
    le formulaire :

    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
     
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
    <%@ taglib uri="http://jakarta.apache.org/taglibs/display"
    	prefix="display"%>
     
    <%@page import="database.IPipoDao"%><html:html>
    <head>
    <title>Liste des Pipos</title>
    </head>
    <body>
    <display:table name="listPipo" pagesize="10">
    	<display:column property="id" />
    	<display:column property="label" />
    	<display:column property="archived" />
    </display:table>
    </body>
    </html:html>
    et le fichier struts :

    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
     
    <!DOCTYPE struts-config PUBLIC 
    	"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" 
    	"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
    <struts-config>
    	<form-beans>
    		<form-bean 
    			name="listPipoForm" 
    			type="forms.ListPipoForm" />
     
    	</form-beans>
    	<action-mappings>
    		<action 
    			name="listPipoForm" 
    			path="/ListPipo"
    			type="actions.ListPipoAction">
    			<forward name="success" path="/jsp/vuePipoNonArchives.jsp" />
    		</action>
    	</action-mappings>
    </struts-config>
    Enfin, je lance par l'url : ListPipo.do

  6. #6
    Membre habitué Avatar de domiq44
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 301
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    Je pense que j'ai donné trop de détail et que ça ne sert pas vraiment à grand chose

    Pour résumer

    J'ai une page C qui est utilisée par la page A et la page B.
    Je désire donc faire une redirection par rapport à l'origine (d'où l'on vient).

    - Lors du retour (on ne valide pas) :
    Page A -> Page C (retour) -> Page A
    Page B -> Page C (retour) -> Page B
    C'est ce que fait le bouton "Précédent" du navigateur mais la on doit le faire via le bouton "retour" dans la JSP.

    Lors de la validation :
    Page A -> Page C (valider) -> Page A
    Page B -> Page C (valider) -> Page B
    C'est ce que l'on a dans l'action qui ouvre la page A mais la on doit le faire via le bouton "valider" dans la JSP, apres le traitement fonctionnel d'archivage.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/06/2005, 10h56
  2. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 10h51
  3. [MFC] Quelques questions de débutant...
    Par Sephi dans le forum MFC
    Réponses: 4
    Dernier message: 20/02/2004, 17h25
  4. Questions de débutant
    Par J-P-B dans le forum XMLRAD
    Réponses: 12
    Dernier message: 24/07/2003, 15h19
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo