Bibliothèque de balises personnalisées JSP (attributs de transmission)

StackOverflow https://stackoverflow.com/questions/224637

  •  03-07-2019
  •  | 
  •  

Question

J'essaie d'utiliser plusieurs attributs dans ma balise personnalisée, par exemple:

.
<mytaglib:mytag firstname="Thadeus" lastname="Jones" />

Comment puis-je accéder aux attributs du code TagHandler?

Était-ce utile?

La solution

Ce n'est pas vraiment la réponse à votre question, mais je déteste (je n'ai jamais écrit) TagHandler, mais j'aime fichiers de balises . Vous permet d’écrire des étiquettes personnalisées à l’aide de fichiers jsp. Vous les connaissez probablement et ne sont pas disponibles / applicables - mais je pensais les mentionner au cas où.

Autres conseils

Pour accéder aux paramètres, votre classe TagHandler doit définir les membres privés et fournir des méthodes d'accès.

public class TagHandler extends TagSupport {
    private String firstName;
    private String lastName;

    public void setFirstName(String firstname) { firstName = firstname; }
    public void setLastName(String lastname) { lastName = lastname;}
}

vous pouvez ensuite accéder aux paramètres via les variables TagHandler.

public int doStartTag() throws JspException {
    pageContext.getOut().print(lastName + ", " + firstName);
}

Si vous rencontrez toujours des problèmes, vérifiez bien vos conventions de dénomination. L’interpètre Java essaie de deviner quelle est la méthode de définition. Par conséquent, si votre paramètre est " Prénom " que la méthode set doit être " setFirstName " si le paramètre est " dernier nom " le paramètre set doit être "setlastname". Je préfère suivre l’ancien, car c’est la convention de nommage standard Java.

Pour démontrer la solution de ce problème, prenons une analogie. Supposons que nous ayons " userName " et " mot de passe " qui est extrait de index.jsp et nous devons transmettre nos données dans l'attribut de balise personnalisée. Dans mon cas, ça marche

<body>

<%
String name=request.getParameter("name");
String password=request.getParameter("password");
%>

<%@ taglib prefix="c" uri="/WEB-INF/mytag.tld" %>

<c:logintag name="<%=name %>" password="<%=password %>"/>

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top