2012-10-15 40 views
0

我想在JSP页面中输出一个函数变量的值。函数变量位于java.class(com.project.bulk)中。文件名是bulk.class。我试着通过在JSP文件中编写下面的代码来读取变量,但它不起作用。请帮忙吗?阅读jsp页面中的java类函数变量

<%@ 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(); 
      } 
    } 

回答

2

不能该方法或在其被定义的块外部访问的本地变量。局部变量的作用域被限制在定义的块中。

您的下面的声明是在其声明的for-loop的本地。即使在目前的方法中,它也不会在for-loop之外访问。因为你的循环定义的访问的scope此变量: -

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

要访问它在一个JSPclass外,声明字段在类私有实例变量。并有一个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 
    } 
} 
+0

罗希特,我知道你提供很多重要的信息。但对于像我这样的初学者来说,如果您提供一个小例子,这将会很有帮助。 ? – user1710288

+0

@ user1710288在这里很难让你理解一切。我会建议通过一些基本的“类”教程。您可以从以下开始: - http://docs.oracle.com/javase/tutorial/java/javaOO/classes.html –

+0

Rohit,我会这样做,并感谢您向我展示正确的方向。如果可能,你还可以发布一个简单的例子吗? – user1710288