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 :

[Struts] Formulaire dynamique


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Par défaut [Struts] Formulaire dynamique
    Bonjour

    j'aimerais avoir l'aide d'une personne qui s'y connait en struts.

    j'ai un formulaire a poster dont le nombre de champs (ainsi que leurs types) est inconnu d'avance.

    example : aujourd'hui je peux avoir title, et demain title, creationDate, author etc ...
    je repete ces champs ne peuvent pas etre connus dans la jsp

    bref est-ce que qqn aurait une solution a proposer.

    merci d'avance


    ps : ce cas suppose evidemment des contraintes
    1- dans le struts-config.xml on ne peut avoir <form-property name="title" type="java.lang.String"></form-property>

    2- dans l'actionForm on ne peut avoir l'attribut title et les methodes getTitile et setTitle

  2. #2
    Membre actif
    Inscrit en
    Juillet 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 46
    Par défaut
    euh alors la ... tu vas avoir du mal.
    tu pourrais pas plutôt faire l'opération inverse?

    tu définis tout les attributs qui peuvent être affiché dans ton form.
    et dans ta page jsp tu tries ce qu'il est possible de voir.

    actuellement c'est ce que nous faisons car chaque utilisateur peut avoir des droits de visualisation/modification sur chaque attribut. de ce fait on effectue un resize automatique des attributs affichable.

    si c'est un problème de sécurité il te faudra faire le trie avant d'afficher la page (tag personnalisé ou tu utlise l'introspection pour lister tout les attributs et il te faudra un système qui te dise si cet attribut doit être affiché ou non).

    ainsi rien n'apparaitra dans le code html de ta page

    ps: suite a une relecture je vois que même le type peut changer, et la j'ai pas de solution

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Par défaut
    non malheureusement je ne peux pas faire cela. de plus ce n'est pas un lié à la sécuité mais au back-office existant.

    l'idée est de poster un formulaire et de recuperer une collection d'objets dans l'action

    ca a l'air tout de meme tres simple. cela m'etonne que ca ne soit pas possible

  4. #4
    Membre actif
    Inscrit en
    Juillet 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 46
    Par défaut
    tu peux créer un formulaire pour récupérer un collection d'objet mais il faut que ta collection soit bien définis

    du style récupérer un collection de personne (nom, prénom,date de naissance) après libre a toi de renseigné que le nom.
    par contre je n'ai aucune idée de la manière de faire pour récupérer un collection d'objet différents du style personne ou addresse

  5. #5
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Qu'est ce qui determine le nombre d'attributs ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Par défaut
    Citation Envoyé par ze_key
    Qu'est ce qui determine le nombre d'attributs ?
    le back office client... je ne peux pas intervenir dessus mais ... j'ai un peu creusé et sur internet j'ai trouvé les indexed properties.

    ca semble faire ce que je veux. cela dit je n'y suis pas arrivé. j'ai a la console deux fois > field : null

    voila ce que j'ai fait. je pense que le pb vient de ${myFom.map.fields}

    merci d'avance.

    dans struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form-bean name="myForm" type="org.....DynaActionForm">
     <form-property name="fields" type="model.Field[]" size="2"/>
    </form-bean>
     
    <action path="/c" type="actions.MyDynaAction" name="myForm" scope="request" input="/c.jsp">
    			<forward name="cjsp" path="/cjsp.do">
    			</forward>
    		</action>
    		<action path="/cjsp" forward="/c.jsp">
    		</action>
    mon action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class MyDynaAction extends Action{
    .....
     DynaActionForm poForm = (DynaActionForm) form;
     Field[] fields = (Field[]) poForm.get("fields");
     for (int i = 0; i < fields.length; i++) {
      Field field = fields[i];
      System.out.println("field : " + field.name);
    ....
    }
    mon bean
    j'ai une classe Filed
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class Field {
    	public String value;
    	public String type;
    	public String name;
     .....
    }
    ma jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <html:form action="/c">
    <c:forEach var="fields" items="${myFom.map.fields}" >
    	<html:text indexed="true" name="fields" property="name"/><BR>
    	<html:text indexed="true" name="fields" property="value"/><BR>
    	<html:text indexed="true" name="fields" property="type"/><BR>
    </c:forEach>
    </html:form>

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Par défaut
    c bon, ca marche
    effectivement c'etait bien myFom.map.fields --> myForm.map.fields

    pour ceux que ca interesse :
    http://www.developer.com/java/ejb/article.php/2233591

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

Discussions similaires

  1. Utilisation des formulaires dynamiques avec struts
    Par nabdelghafour dans le forum Struts 1
    Réponses: 1
    Dernier message: 30/03/2007, 11h58
  2. Formulaire Dynamique Avec Struts
    Par tarakakik dans le forum Struts 1
    Réponses: 1
    Dernier message: 24/08/2006, 13h22
  3. [STRUTS] Formulaire dynamique
    Par _beber85 dans le forum Struts 1
    Réponses: 3
    Dernier message: 30/03/2006, 12h31
  4. [Struts] Formulaire dynamique
    Par sg-40 dans le forum Struts 1
    Réponses: 3
    Dernier message: 07/11/2005, 08h58
  5. [struts]Formulaire dynamique
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 28/05/2004, 16h35

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