在jsp页面中读取java类函数变量

时间:2012-10-15 11:43:47

标签: java jsp

我正在尝试在JSP页面中打印函数变量的值。函数变量位于java.class(com.project.bulk)中。文件名是bulk.class。我尝试通过在JSP文件中编写下面的代码来读取变量,但它不起作用。有什么帮助吗?

<%@ page import="com.project.bulk.bulk" %>

<%=bulk.cellStoreVector %>

//功能代码在

之下
private static void printCellDataToConsole(Vector dataHolder) {

            for (int i = 0; i < dataHolder.size(); i++) {
                    Vector  cellStoreVector  = (Vector) dataHolder.elementAt(i);
                    System.out.println(cellStoreVector);
                    for (int j = 0; j < cellStoreVector.size(); j++) {
                          HSSFCell myCell = (HSSFCell) cellStoreVector.elementAt(j);
                          String stringCellValue = myCell.toString();
                         // System.out.print(stringCellValue + "\t\t");
                    }
                    System.out.println();
            }
    }

1 个答案:

答案 0 :(得分:2)

您无法访问该方法之外的局部变量或定义它的块。局部变量的范围被限制在定义它的块中。

您的以下声明是声明它的for-loop的本地声明。即使在当前方法中,也无法在for-loop之外访问它。因为您的循环为此变量定义了scope访问权限: -

Vector  cellStoreVector  = (Vector) dataHolder.elementAt(i);

要在JSP之外的class中访问它,请将该字段声明为您班级中的私有实例变量。并且有一个public访问器方法,它将返回该字段的值。然后在JSP中,您可以调用该方法来获取特定实例的值。

请记住,您需要在班级instance上访问该方法。您可以通过class name直接访问此处。如果你想这样访问它,你需要一个static变量。

这是一个简单的例子,涵盖了我上面所说的内容: -

public class Dog {

    // Private Instance variable
    private int instanceVar; // Defaulted to 0

    // Private Static variable
    // Common for all instances
    private static String name = "rohit";


    // Public accessor
    public int getInstanceVar() {
        return this.instanceVar;
    }

    public void setInstanceVar(int instanceVar) {
        this.instanceVar = instanceVar;
    }

    // Static public accessor for static variable
    public static String getName() {
        return name;
    }

}

class Test {
    public static void main(String[] args) {
        // Access static method through class name
        System.out.println(Dog.getName()); 

        Dog dog = new Dog();

        // Set instance variable through public accessor, on a particular instance
        dog.setInstanceVar(10);

        // Get instance variable value and asssign to local variable x
        // x is local variable in `main`
        int x = dog.getInstanceVar(); 

        showX(); 
    }

    public static void showX() {

        // x not visible here.
        System.out.println(x);  // Will not compile
    }
}