为什么我的jsp页面不能直接调用静态方法?

dhloveyou2013 2013-03-20 12:11:09
这是一个在线统计的JAVA类
package com.suda.hxl.exam.common;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class OnlineCounter implements HttpSessionListener {
private static long count=0;

public void sessionCreated(HttpSessionEvent arg0) {
count++;

}

public void sessionDestroyed(HttpSessionEvent arg0) {
count--;

}
public static long getCount(){
return count;
}

}

在要显示在线人数的页面top.jsp中导入
<%@ page import="com.suda.hxl.exam.common.*" %>

在线人数<%=OnlineCounter.getCount()%>
==================================================
各位师兄,这代码没问题吧,我试过在Action中使用OnlineCounter.getCount()是有结果返回的,就是直接放到JSP页面中使用就不行了,只导入那个包就报错,郁闷的很哟....
这个是只导入静态方法包后执行显示top.jsp时报的错误信息:
----------------------
2013-3-20 0:08:20 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 6 in the generated java file
Syntax error on token ";", delete this token

Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)

----------------------
...全文
304 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2013-03-20
  • 打赏
  • 举报
回复
贴出你JSP<html>之前的部分。那里有点问题,导致编译出来的java文件,多了一个分号。 怀疑是 import="这个部分" 或者<%@ page xxx="其他这种地方出问题" %>。 请检查你的类似tomcat/work/Catalina/localhost/YOUR_CONTEXT_PATH/org/apache/jsp目录或者更里面的top_jsp.java看看他第六行的前后内容是什么? 估计是import com.suda.hxl.exam.common.*;;
dhloveyou2013 2013-03-20
  • 打赏
  • 举报
回复
就是在前面一人导入包的后面加了“;”,怪自己大意了
zhaoli2315 2013-03-20
  • 打赏
  • 举报
回复
哦 没注意你的静态属性定义为私有了,需要先new一个对象在调用getter方法
zhaoli2315 2013-03-20
  • 打赏
  • 举报
回复
首先 类似import="java.sql.*"不需要封号,然后直接用OnlineCounter.count试试
鸡肋啊 2013-03-20
  • 打赏
  • 举报
回复
引用 1 楼 shine333 的回复:
贴出你JSP<html>之前的部分。那里有点问题,导致编译出来的java文件,多了一个分号。 怀疑是 import="这个部分" 或者<%@ page xxx="其他这种地方出问题" %>。 请检查你的类似tomcat/work/Catalina/localhost/YOUR_CONTEXT_PATH/org/apache/jsp目录或者更里面的top_jsp.java看看他第六行的前……
先实例化,然后再调用试试; <%OnlineCounter onlineCounter=new OnlineCounter(); onlineCounter.getCount();%>
Intboy 2013-03-20
  • 打赏
  • 举报
回复
看错误提示貌似就是哪里多了个分号啊

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧