public class AlarmCache {
private static AlarmCache instance = new AlarmCache();

private AlarmCache(){
}
public static AlarmCache getInstance(){
return instance;
}
public void addAlarm(Alarm alarm){

}
public void removeAlarm(Alarm alarm){

}
public List<Alarm> getAlarm(long objId){
return null;
}
public int getAlarmCountByLevel(int level){
String hql = "from Alarm where alarm_level=" + level;
List list = DbCore.query(hql);
return list.size();
}
}我要在另一个JSP页面调用getAlarmCountByLevel这个方法。并把查到的记录显示在页面。
我JSP里用<%AlarmCache=new AlarmCache()%>为什么报错啊...

解决方案 »

  1.   


    <%AlarmCache=new AlarmCache()%>
    哥,你的变量名呢?就算是匿名也不是这样匿名的吧?还有,记得在JSP文件import类。
      

  2.   

    <%AlarmCache ac=new AlarmCache()%>
    刚才打错了。我是这样写的
    我也import了的
    然后<%=ac.getAlarmCountByLevel%>
    这样就报错了
      

  3.   

    再回一个,刚刚没注意看你的类里面的内容。。看你的内容,应该是个单例类你的默认构造方法都是private,怎么能new?改成,<%AlarmCache alarmCache=AlarmCache.getInstance()%>
      

  4.   

    你new AlarmCache()的时候,调用的就是类的AlarmCache()构造方法是吧?你的AlarmCache()构造方法是private的,能在外部访问吗?当程序运行的时候你的private static AlarmCache instance = new AlarmCache();就会执行,那么,在这个类的内部就有一个AlarmCache实例了。你写getInstance方法的目地是什么?不就是想得到这个实例吗?
      

  5.   

    直接复制你的代码,还有个地方不知道是你真没写还是发帖的时候省略了。。<%AlarmCache alarmCache=AlarmCache.getInstance();%>//这里是写的JAVA代码,一行代码结束后,同样要加;号的
      

  6.   

    如果楼主想要用new关键字来产生实力对象,必须把构造函数声明为共有的即用public来生命这样,就不会报错了。
      

  7.   

    <%******%>
    之间的内容是直接生成在你JSP文件所产生Servlet中的service方法里的,格式都要按java的写不会真的是因为没加分号吧=。=<%=******%>
    等于out.print("******")
      

  8.   

    既然java类使用singleton实现,那么jsp那边也应该遵照这个来做吧,用getInstance方法来取得实例
      

  9.   

    <% AlarmCache ac = AlarmCache.getInstance() %>
      

  10.   


    <% AlarmCache ac = AlarmCache.getInstance() %>