68 votes

Déclarer des fonctions dans JSP ?

Je viens du monde PHP, où déclarer une fonction au milieu d'une page php est assez simple. J'ai essayé de faire la même chose en JSP :

public String getQuarter(int i){
String quarter;
switch(i){
    case 1: quarter = "Winter";
    break;

    case 2: quarter = "Spring";
    break;

    case 3: quarter = "Summer I";
    break;

    case 4: quarter = "Summer II";
    break;

    case 5: quarter = "Fall";
    break;

    default: quarter = "ERROR";
}

return quarter;
}

J'obtiens l'erreur suivante :

An error occurred at line: 20 in the jsp file: /headers.jsp
Illegal modifier for the variable getQuarter; only final is permitted return;

2 votes

Vous ne devriez probablement pas faire cela. Transmettez les données sous une forme utilisable au JSP, quel que soit l'endroit où vous les obtenez.

123voto

karim79 Points 178055

Vous devez l'entourer de <% ! %> comme suit :

<%!

public String getQuarter(int i){
String quarter;
switch(i){
        case 1: quarter = "Winter";
        break;

        case 2: quarter = "Spring";
        break;

        case 3: quarter = "Summer I";
        break;

        case 4: quarter = "Summer II";
        break;

        case 5: quarter = "Fall";
        break;

        default: quarter = "ERROR";
}

return quarter;
}

%>

Vous pouvez ensuite invoquer la fonction dans des scripts ou des expressions :

<%
     out.print(getQuarter(4));
%>

ou

<%= getQuarter(17) %>

11 votes

Vous pouvez, mais vous ne devez pas.

17 votes

Adam, pourquoi pas ? Expliquez-nous, s'il vous plaît.

11 votes

Juste au cas où quelqu'un comme moi se demanderait quelle est la différence entre <% ! %> et <% %>, il y a une bonne explication ici : stackoverflow.com/questions/5508753/difference-between-and

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X