2009-05-05 2 views
53

Я пришел из мира PHP, где объявление функции в середине php-страницы довольно просто. Я попытался сделать то же самое в JSP:Объявление функций в 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; 
} 

Я получаю следующее сообщение об ошибке:

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

Вы, вероятно, не должны делать это. Передавайте данные в удобной форме в JSP из любого места, где вы его получаете. –

ответ

91

Вам нужно заключить, что в <%! %> Следующим образом:

<%! 

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; 
} 

%> 

Вы можете затем вызвать функцию в скриптлетах или выражений:

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

или

<%= getQuarter(17) %> 
+11

Вы можете, но не должны. –

+10

Адам, почему бы и нет? Пожалуйста, объясните, пожалуйста. – ericso

+9

на всякий случай, если кто-то вроде меня блуждает в какой-то разнице между <%! %> и <% %>, есть хорошее объяснение здесь: http://stackoverflow.com/questions/5508753/difference-between-and – epeleg

Смежные вопросы