我在JSP里面想要调用JAVABEAN里面的函数,可是出现了问题
JSP里面的代码如下:
<%chap4.PasswordBean.createPassword();%>
JAVABEAN里面的代码如下:
    public void createPassword(){
        double d = Math.random();
        int n =1;
        for(int i=0;i<numDigit;i++){
            n = n*10;
            password = (long)(d*n) + 1;
        }
错误提示如下:
\chap4_005f2_jsp.java:77: non-static method createPassword() cannot be referenced from a static context
请问是什么问题又该如何更正呢?

解决方案 »

  1.   

    你的一个静态方法调用了一个非静态的方法你把调用createPassword()的方法前面的static去掉
      

  2.   

    <% chap4.PasswordBean pbean = new chap4.PasswordBean();pbean.createPassword();%>
      

  3.   

    能否说的详细点,我对概念不是很理解。我的方法里面没有static呀!
    public class PasswordBean implements Serializable {
        private int numDigit;
        private long password;
        
        public PasswordBean() {
            numDigit = 6;
            password = 123456;
        }
        
        public void setNumDigit(int n){
            if(n<6){
                numDigit = n;
            }
            else{
                numDigit = 6;
            }
        }
        
        public void createPassword(){
            double d = Math.random();
            int n =1;
            for(int i=0;i<numDigit;i++){
                n = n*10;
                password = (long)(d*n) + 1;
            }
        }
        
        public int getNumDigit(){
            return numDigit;
        }
        
        public long getPassword(){
            return password;
        }
    }
      

  4.   

    trumplet(检查)说的对,谢谢,不过我想请问为什么要定义一个BEAN对象这样才好用呀!?
      

  5.   

    createPassword()是一个非静态方法,必须先创建一个实例才能调用。非静态方法是针对某个实例进行操作,静态的不针对实例操作。“类名.方法名”的调用格式,调用的是静态方法。