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]créer ses propres tag struts


Sujet :

Struts 1 Java

  1. #1
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut [Struts]créer ses propres tag struts
    Bonjour,

    je fais une application web avec un moteur de recherche, qui affiche les resultats dans un tableau, par group de 10 resultats.

    J'ai donc en pied de page une barre de navigation, qui permet de changer de page... qqchose qui ressemble à ca :

    page 1 | 2 | 3 --> suivant

    J'ai donc implémenté un manager qui construit un objet "NavigationBar" qui contient toutes les infos de cette barre de navig.

    maintenant je souhaite ecrire un tag struts pour afficher cet objet, mais je ne sais pas comment faire...
    De quoi doit heriter ma classe tag lib ??

    quelle est la marche à suivre ??

    merci !

    J'ai deja retouché le tag img pour rajouter un attribut.. donc, je sais faire au niveau des tld, c plutot le code java que je ne sais pas faire et je trouve pas de tutoriel ./ exemple..

    merci !


    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu as le la chance j'explique justement ceci dans ce tutoriel :
    http://adiguba.developpez.com/tutoriels/j2ee/jsp/taglib/

    Bonne lecture

    a++

    PS : penses également que la JSTL propose aussi pas mal de tag...

  3. #3
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    ok merci j'ai pas mal avancé avec ce tutoriel...

    Mais est-ce possible de passer dans un attribut de customTag un objet de type non primitif ?

    g ecrit mon tld comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    <tag>
    <name>navigation</name>
    <tagclass>atchik.app.chat.ato.itf.taglib.NavigationBarTag</tagclass>
    <bodycontent>empty</bodycontent>
    <attribute>
    <name>bar</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    </tag>
    et g créé ma classe tag comme ceci :
    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
     
     
    public class NavigationBarTag extends BodyTagSupport {
     
    	/**
             * Comment for <code>serialVersionUID</code>
             */
    	private static final long serialVersionUID = 3691035478531192628L;
     
    	private NavigationBar bar ;
     
     
    	public int doStartTag() throws JspException {
    		// TODO Auto-generated method stub
    		JspWriter out = pageContext.getOut();
     
     
    		if(getBar()== null){
    			throw new JspException ("Attribute navigationBar should be present !");
    		}
     
    		int i =0 ;
    		while (i<=getBar().getNbPages()){
    			try {
    				out.write(i+" | ");
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}			
    			i++;
    		}
     
    		return SKIP_BODY;
    	}
    mais g une exception que je ne comprends pas :

    org.apache.jasper.JasperException: Unable to convert string 'navig_bar' to class atchik.app.chat.ato.itf.util.mdl.NavigationBar for attribute bar: java.lang.IllegalArgumentException: Property Editor not registered with the PropertyEditorManager


    ???? help

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jeb001
    Mais est-ce possible de passer dans un attribut de customTag un objet de type non primitif ?
    Oui, et à partir de la version 1.2 tu peux même spécifier le type dans le TLD (ce n'est pas obligatoire, mais cela permet d'avoir une erreur à la compilation plutôt qu'a l'exécution) : http://adiguba.developpez.com/tutori...taglib/#L2.1.6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <attribute>
    	<name>bar</name>
    	<required>true</required>
    	<rtexprvalue>true</rtexprvalue>
    	<type>atchik.app.chat.ato.itf.util.mdl.NavigationBar</type>
    </attribute>
    Il faut bien sûr que la méthode setter correspondant existe dans la classe de ton Tag :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	private NavigationBar bar ;
     
    	public void setBar (NavigationBar pBar) {
    		this.bar = pBar;
    	}

    Enfin concernant l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.apache.jasper.JasperException: Unable to convert string 'navig_bar' to class atchik.app.chat.ato.itf.util.mdl.NavigationBar for attribute bar
    Si l'attribut correspond à un objet, tu ne peux pas lui passer une String mais un objet, soit en utilisant une scriptlets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tag:navigation bar="<%=monObjetNavigationBar%>" />
    Soit avec les EL (JSP 2.0 ou JSP1.x+JSTL) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tag:navigation bar="${requestScope['attributNavigationBar']}" />
    a++

Discussions similaires

  1. Créer ses propres Microsoft Tags
    Par Samuel Blanchard dans le forum Framework .NET
    Réponses: 6
    Dernier message: 21/03/2011, 21h27
  2. [Struts][Validator] : créer ses propre validator
    Par anaon dans le forum Struts 1
    Réponses: 3
    Dernier message: 10/05/2006, 07h19
  3. Programme permettant de créer ses propres paquets TCP/UDP
    Par mat087 dans le forum Développement
    Réponses: 6
    Dernier message: 21/05/2004, 21h42

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