【问题标题】:Declaring functions in JSP?在 JSP 中声明函数?
【发布时间】:2009-05-05 21:13:34
【问题描述】:

我来自 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;
}

我收到以下错误:

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

【问题讨论】:

  • 你可能不应该这样做。以可用的形式将数据从您获取的任何地方传递给 JSP。

标签: jsp function


【解决方案1】:

你需要把它括在 如下:

<%!

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

%>

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

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

<%= getQuarter(17) %>

【讨论】:

  • 可以,但不应该。
  • 亚当,你为什么不呢?请解释一下。
  • 以防万一像我这样的人徘徊 和 这里有一个很好的解释:stackoverflow.com/questions/5508753/difference-between-and
  • @ericso 你不应该这样做,因为这样做很难调试,等等;请参阅stackoverflow.com/questions/3177733/… 了解更多信息
  • 在适当的类中声明公共静态函数,如果由于层次/模块化或结构原因需要函数,则将其放入单独的 JSP 中,并将其包含在内。在后一种情况下,可以使用request.setAttribute(String, Object)request.getAttribute(String, Object) 传递参数。如果您仍然认为需要在 JSP 中声明函数,那么请再想想当初为什么要使用 JSP。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多