OVH Cloud OVH Cloud

Inclusion de fichiers JSP

3 réponses
Avatar
paul
Bonjour,

Je voudait dans un fichier .jsp inclure un fichier contenant des fonctions.
Mais j'ai des erreurs à la compilation.
j'ai du rater un truc de base ?

qui peut me dépanner ?

Paul
----------------------- SOURCE
-- un fichier index4.jsp qui inclut le fichier aff4.jsp

<%@ page language="java" %>
<%@page import="javax.servlet.*" %>
<%@page import="javax.servlet.http.*" %>
<%@page import="javax.servlet.jsp.*" %>
<%@page import="java.io.*" %>
<%@page import="java.util.*" %>
<%@page import="java.util.Vector.*" %>
<%@include file="aff4.jsp" %> <<<<< fichier inclus
<% afficheListe3(); %> <<<<<< fonction appellée

-------------------- aff4.jsp (fichier inclus)
<%@ page language="java" %>

<%! public void afficheListe3()
{
String chaine;
%><%= OK %> <%
}
%>

-------------- index4_jsp.java (source java généré )
package org.apache.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.io.*;
import java.util.*;
import java.util.Vector.*;


public final class index4_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {

public void afficheListe3()
{
String chaine;

private static java.util.Vector _jspx_dependants; <<<< erreur1

static { <<<< erreur 2
_jspx_dependants = new java.util.Vector(1);
_jspx_dependants.add("/aff4.jsp");
}

public java.util.List getDependants() {
return _jspx_dependants;
}
............................................

---------------------- MESSAGE d'ERREUR Généré

Etat HTTP 500 -
type Rapport d'exception
description Le serveur a rencontré une erreur interne () qui l'a empêché de
satisfaire la requête.
org.apache.jasper.JasperException: Impossible de compiler la classe pour la
JSP

Erreur de servlet générée:
C:\Program Files\Apache Software Foundation\Tomcat
5.0\work\Catalina\localhost\Reservation\org\apache\jsp\index4_jsp.java:26:
illegal start of expression
private static java.util.Vector _jspx_dependants;
^

Erreur de servlet générée:
C:\Program Files\Apache Software Foundation\Tomcat
5.0\work\Catalina\localhost\Reservation\org\apache\jsp\index4_jsp.java:28:
illegal start of expression
static {
^


Erreur de servlet générée:
C:\Program Files\Apache Software Foundation\Tomcat
5.0\work\Catalina\localhost\Reservation\org\apache\jsp\index4_jsp.java:102:
';' expected
}
^
........................

3 réponses

Avatar
David Molinier
L'expression déclarée dans le fichier "aff4.jsp" n'est pas valide. La
bonne syntaxe est de la forme :

<%! declaration; [ declaration; ]+ ... %>.

Or, tu as codé :

<%! public void afficheListe3()
{
String chaine;
%><%= OK %> <%
[...]

Pourquoi, dans ton expression, utiliser une balise JSP <%= alors que tu
pourrais directement accéder à ton objet ?

Que souhaites-tu obtenir comme résultat ?

--
David
Avatar
paul
merci pour ta réponse.

Je voudrais déclarer une bibliothéque de fonction dans le fichier qui est
appellé.
la fonction est une fonction exemple avec un code tout bête.

cette déclaration de fonction marche dans le fichier maitre index4.jsp
mais pas dans le fichier inclus aff4.jsp

Paul


"David Molinier" a écrit dans le message de news:

L'expression déclarée dans le fichier "aff4.jsp" n'est pas valide. La
bonne syntaxe est de la forme :

<%! declaration; [ declaration; ]+ ... %>.

Or, tu as codé :

<%! public void afficheListe3()
{
String chaine;
%><%= OK %> <%
[...]

Pourquoi, dans ton expression, utiliser une balise JSP <%= alors que tu
pourrais directement accéder à ton objet ?

Que souhaites-tu obtenir comme résultat ?

--
David
Avatar
Fabien Bergeret
paul wrote:
merci pour ta réponse.

Je voudrais déclarer une bibliothéque de fonction dans le fichier qui est
appellé.
la fonction est une fonction exemple avec un code tout bête.

cette déclaration de fonction marche dans le fichier maitre index4.jsp
mais pas dans le fichier inclus aff4.jsp

Paul


"David Molinier" a écrit dans le message de news:

L'expression déclarée dans le fichier "aff4.jsp" n'est pas valide. La
bonne syntaxe est de la forme :

<%! declaration; [ declaration; ]+ ... %>.

Or, tu as codé :

<%! public void afficheListe3()
{
String chaine;
%><%= OK %> <%
[...]

Pourquoi, dans ton expression, utiliser une balise JSP <%= alors que tu
pourrais directement accéder à ton objet ?

Que souhaites-tu obtenir comme résultat ?

--
David


Plutot que de faire ca sous forme d'inclusion de jsp, il serait plus

"propre" de faire ca sous forme de taglibs.
Cela te permet de faire des balises specifiques a tes besoins, et de les
coder en "bon Java".
Cela permet aussi de recuperer d'utiliser des taglibs existants ...