如何在jsp中将bean值传递给javascript?

如何在jsp中将bean值传递给javascript?,java,javascript,jsp,javabeans,Java,Javascript,Jsp,Javabeans,我试图将一个int从bean传递到jsp页面(使用类似的东西) 但当我试图将其传递给页面中的javascript时,它给出的错误是:“非静态方法不能在静态上下文中引用”。我试图在脚本中形成一个循环,类似于: for (int i = 0; i < (<%= TestBean.getNumber()%>); i++) { // } for(int i=0;i

我试图将一个int从bean传递到jsp页面(使用类似
的东西)

但当我试图将其传递给页面中的javascript时,它给出的错误是:“
非静态方法不能在静态上下文中引用”
。我试图在脚本中形成一个循环,类似于:

    for (int i = 0; i < (<%= TestBean.getNumber()%>); i++) 
    {
    // 
    }
for(int i=0;i<();i++)
{
// 
}

有人知道如何将bean值传递给javascript吗?谢谢。

您的bean名
TestBean
看起来像您的类名

编译器认为您正在尝试访问类方法(静态方法)。如果试图调用实例方法(非静态),则需要定义bean实例的名称

约定是类以大写名称开头,实例使用小写名称。尝试按照此规则(小写名称)声明bean实例

例如:

<html>
    <head>
        <script>
        <%
            class SampleBean {
                String _value;
                public String getValue () { return _value; }
                public void setValue (String value) { _value = value; }
            }
            SampleBean sb = new SampleBean();
            sb.setValue("Hello World!");
        %>
        v = "<%= sb.getValue() %>";
        </script>
    </head>
    <body>
        <a href="javascript:alert(v)">Click me!</a>
    </body>
</html>

v=“”;

您的方法getNumber()似乎不是静态的。所以不能使用静态引用调用它
ClassName.method()
谢谢。我知道我可以把getNumber()改为static,但我觉得有更好的方法来实现这一点;Bean的实例已经在servlet中创建,我正在尝试将该值传递给脚本。谢谢。但问题仍然存在。我只是想知道,有没有更好的方法将bean值从servlet传递到java脚本?我已经更新了答案,为您提供了一个工作示例JSP。希望能有帮助。