2009-05-05 11 views
53

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:Déclaration de fonctions dans 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; 
} 

Je reçois 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

Vous ne devriez probablement pas faire cela. Transmettez les données sous une forme utilisable à la JSP de partout où vous l'obtenez. –

Répondre

91

Vous devez joindre que <%! %> 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 appeler la fonction dans les scriptlets ou expressions:

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

ou

<%= getQuarter(17) %> 
+11

Vous pouvez, mais vous ne devriez pas. –

+10

Adam, pourquoi pas toi? S'il vous plaît expliquer, s'il vous plaît. – ericso

+9

juste au cas où quelqu'un comme moi erre quelle est la différence entre <%! %> et <% %> il y a une bonne explication ici: http://stackoverflow.com/questions/5508753/difference-between-et – epeleg