2009-05-05 27 views
53

PHP dünyasından geliyorum, bir php sayfasının ortasındaki bir işlevi bildirmek oldukça basit. Ben JSP aynı şeyi yapmaya çalıştık:JSP'de bildirme işlevleri?

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

aşağıdaki hatayı alıyorum:

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

Muhtemelen bunu yapmamalıyız. Verileri, aldığınız her yerden JSP'ye kullanılabilir bir biçimde iletin. –

cevap

91

Sen <% olarak o içine gerekiyor! %> Aşağıdaki gibidir:

<%! 

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

%> 

Ardından scriptlets veya ifadeler içinde işlevini çağırabilirsiniz:

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

veya

<%= getQuarter(17) %> 
+11

Yapabilirsin ama yapmamalısın. –

+10

Adam, neden olmasın? Lütfen açıkla lütfen. – ericso

+9

Sadece benim gibi birisi dolaşırsa <%! %> ve <% %> arasındaki fark nedir? Burada iyi bir açıklama var: http://stackoverflow.com/questions/5508753/difference-between-and – epeleg