在JSP中声明函数?

Nat*_*n H 62 jsp function

我来自PHP世界,在php页面中声明一个函数非常简单.我试图在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;
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

An error occurred at line: 20 in the jsp file: /headers.jsp
Illegal modifier for the variable getQuarter; only final is permitted return;
Run Code Online (Sandbox Code Playgroud)

kar*_*m79 106

您需要将其括在<%!%>如下:

<%!

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

%>
Run Code Online (Sandbox Code Playgroud)

然后,您可以在scriptlet或表达式中调用该函数:

<%
     out.print(getQuarter(4));
%>
Run Code Online (Sandbox Code Playgroud)

要么

<%= getQuarter(17) %>
Run Code Online (Sandbox Code Playgroud)

  • 亚当,你为什么不应该?请解释一下. (15认同)
  • 你可以,但你不应该. (11认同)
  • 以防万一像我这样的人徘徊<%!%>和<%%>这里有一个很好的解释:http://stackoverflow.com/questions/5508753/difference-between-and (10认同)