Impossible d'accéder à l'objet implicite de l'intérieur méthode dans le fichier de balises JSP personnalisé

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

  •  23-10-2019
  •  | 
  •  

Question

Je tente de créer une balise jsp personnalisée. Tout fonctionne très bien, à l'exception du fait que je la demande semble être hors de portée pour ma fonction personnalisée.

Voici le bit correspondant du fichier .tag:

<%!
private  String process(String age, BigDecimal amount)
        {
//Attempting to access request here results in an compile time error trying to:
String url=request.getURL;
        }
%>

Je suis très nouveau pour JSP, donc je suis sûr que je manque quelque chose obvious..but je ne peux pas à comprendre quoi. Toute aide est appréciée.

Était-ce utile?

La solution

Je soupçonne que ce parce que la fonction personnalisée est elle-même pas défini dans l'exécution principale de l'appel de service de la JSP, mais est défini comme une méthode distincte au sein de la classe JSP générée. A ce titre, la variable request n'est pas visible tot implicitement.

Pour clarifier, si vous aviez un oeil à la source java que le compilateur JSP génère (qui est spécifique du serveur d'applications), vous verrez comment il se bloque ensemble.

Je pense que vous devrez déclarer l'objet de la demande en tant que paramètre à votre fonction, et passez quand vous l'invoquons.

<%!
private String process(String age, BigDecimal amount, ServletRequest request) {
   String url=request.getURL;
   ....
}
%>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top