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 :

Utilisation du tag logic:equal


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut Utilisation du tag logic:equal
    bonjour à tous,

    voici mon problème :

    mon actionform se compose de plusieurs propriété, dont la liste que j'utilise pour afficher mes résultat. Cette liste se compose d'objet, ayant lui même un certains nombre de propriétés.

    Dans ma page jsp, je fais donc un logic:iterate pour parcourir ma liste et afficher les résultats. Jusque là, aucun soucis.

    C'est maintenant que ça se complique.

    Lors de l'itération, je souhaite tester une des valeurs de mon objets, pour pouvoir utiliser un lien quand cette propriété n'est pas vide.

    voici ce que ça donne avec le code :

    mon actionForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class SearchNumActionForm extends ActionForm 
    {
    	private List searchResult;
    	private String numCm;
    	private String action = "AP";
    L'objet qui se trouve dans la liste "searchResult" du form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class SearchNumContent
    {
    	private String cmNum;
    	private String lastName;
    	private String firstName1;
    	private String firstName2;
    	private String nn;
    	private String uu;
    la jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <layout:collection name="searchNumActionForm" property="searchResult" bundle="HrAndMs" styleClass="ListLine1" styleClass2="ListLine2"> 
            <logic:equal name="searchNumActionForm" property="uu" value="null">
    		<layout:collectionTitle title="" styleClass="ListTitle">
    			<layout:collectionItem width="100" title="" property="cmNum" href="sdent.do?uuid=" target="_blank" param="uu" sortable="true" />
    		</layout:collectionTitle>	
    	</logic:equal>
    Bien entendu, placer ainsi mon logic:equal ne fonctionne pas car il n'est pas capable de faire le test sur une propriété de l'objet qui se trouve dans ma liste.

    Existe t il une possibilité pour pouvoir faire un test (logic:equal, logic:present,...) sur une propriété de l'objet qui se trouve dans ma liste, elle même propriété du Form ?

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Dans le tag layout:collection, ajoute l'attribut id, par exemple id="item".

    Et ensuite, pour tester si la propriété est égal à null, utilise plutôt le tag logic:empty :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logic:empty name="item" property="uu">...</logic:empty>

  3. #3
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut
    J'ai apporté les modifications, puis testé, mais le résultat est toujours le même

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <layout:collection name="searchNumActionForm" id="item"  property="searchResult" bundle="HrAndMs" styleClass="ListLine1" styleClass2="ListLine2"> 
            <logic:empty name="item" property="uu">
                    <layout:collectionTitle title="" styleClass="ListTitle">
                            <layout:collectionItem width="100" title="" property="cmNum" href="sdent.do?uuid=" target="_blank" param="uu" sortable="true" />
                    </layout:collectionTitle>       
            </logic:empty>
    </layout:collection>

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Tu ne souhaites pas plutôt vérifier que la propriété uu n'est pas égale à nulle ?
    Dans ce cas, il faut plutôt utiliser le tag logic:notEmpty.

  5. #5
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut
    En fait, je dois faire un traitement dans le cas ou c'est égal à null, et un autre si c'est différent de null.

    Mais j'ai essayé avec le tag notEmpty également, mais le problème est le même dans les deux cas.

    Je suppose que l'écriture est la même pour les deux cas.

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    As-tu un message d'erreur ?

  7. #7
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut
    non, aucun.

    La seule manière de voir qu'il y a un soucis, c'est en regardant le code source de la page, parce que le code est stoppé juste avant l'instruction "<layout:collection name="searchNumActionForm" id="item" ... "

    à partir du moment ou je supprime le tag empty de la jsp, il n'y a plus aucun soucis, le code html s'affiche correctement.

  8. #8
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Peux-tu montrer la directive taglib qui pointe sur la tld struts-logic que tu as codé dans la jsp ?

  9. #9
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut
    ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="logic" %>

  10. #10
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    En fait, le problème ne vient pas de la tld.

    Il faudrait faire quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <layout:collectionItem title="">    
              <logic:empty name="item" property="uu" >
                  <layout:write name="item" property="cmNum" layout="false"/>
              </logic:empty>
    </layout:collectionItem>
    mais vu tous les attributs que tu utilises dans le tag collectionItem, comme par exemple sortable qui n'existe pas dans le tag layout:write, je doute que cette solution te convienne.

  11. #11
    Membre confirmé Avatar de hadler
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Par défaut
    Bon en fait, j'ai trouvé la solution à mon problème grâce à tes réponses

    voilà le résutlat :

    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
     
    <layout:collection name="searchNumActionForm" id="item" property="searchResult" bundle="HrAndMs" styleClass="ListLine1" styleClass2="ListLine2"> 
    	<layout:collectionTitle title="num" styleClass="ListTitle">
    		<layout:collectionItem width="100" title="" sortable="true" property="cmNum" filter="false">
     
    			<logic:empty name="item" property="uu">
    				<layout:write name="item" property="cmNum" />
    			</logic:empty>	
     
    			<logic:notEmpty name="item" property="uu">
    				<a href="sdent.do?uuid=<layout:write name="item" property="uu" />" target="_blank"><layout:write name="item" property="cmNum" /></a>
    			</logic:notEmpty>
     
    		</layout:collectionItem>
    	</layout:collectionTitle>
    </layout:collection>
    Merci beaucoup pour ton aide en tout cas.

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

Discussions similaires

  1. la tag <Logic:equal>
    Par machipot dans le forum Struts 1
    Réponses: 23
    Dernier message: 11/07/2007, 15h55
  2. [debutant][struts]: utilisation du tag <logic:equal ...&g
    Par sleepy2002 dans le forum Struts 1
    Réponses: 13
    Dernier message: 23/11/2006, 17h04
  3. Réponses: 1
    Dernier message: 05/09/2006, 23h37
  4. utilisation de <logic:equal>
    Par sleepy2002 dans le forum Struts 1
    Réponses: 2
    Dernier message: 01/09/2006, 15h29
  5. Réponses: 8
    Dernier message: 25/04/2006, 10h48

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