jsp如何调用java类以及类里的数组方法
我的类文件
package javabean;
public class HelloWord {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("你好,JAVA!");
HelloWord.sayOK();
System.out.println(HelloWord.getHello());
int a[]=null;
a = new int[10];
for(int i=0;i<10;i++){
a[i] = 2*i;
System.out.println(a[i]);
}
}
public static void sayOK()
{
System.out.println("OK");
}
public static String getHello()
{
String str1 = "Hello";
return str1;
}
public static String removeHtml(String str) {
String strText = null;
strText = str.replaceAll("<(?:.|\\s)*?>", "");
return strText;
}
public static void ArrayDemo(int array[])
{
int a[]=null;
a = new int[10];
for(int i=0;i<10;i++){
a[i] = 2*i;
System.out.println(a[i]);
}
}
}
jsp页面调用
<%@ page import="javabean.HelloWord"%>
<%
String strText="<font color=red>java</font>";
out.print(HelloWord.removeHtml(strText));
out.print(HelloWord.getHello());
out.print(HelloWord.main());
//out.print(HelloWord.ArrayDemo(int array[]));报错
%>
访问jsp文件可以正常打印。我现在问的是如何正确的打印ArrayDemo()方法,还有如何直接就调用main()方法打印出来。初学者,如有描述不对的地方见谅:)
------解决方案--------------------out.print(HelloWord.ArrayDemo(new int[] {1, 2, 3}));
------解决方案--------------------当类名和文件名已知,java xx运行会直接调用main方法。
main方法格式必须为
public static void main(String[] args) {
}
------解决方案--------------------//out.print(HelloWord.ArrayDemo(int array[]));报错
这错误是你没理解什么是类方法和实例方法,ArrayDemo是HelloWord类的一个实例方法,所谓实例方法就是调用的时候必须new了对象才能调用这个方法,而类方法不一样(static修饰,调用的时候直接类名.方法名)。
<%
String strText="<font color=red>java</font>";
HelloWord hw = new HelloWord();out.print(HelloWord.removeHtml(strText));
out.print(HelloWord.getHello());
out.print(HelloWord.main());
//out.print(
hw.ArrayDemo(int array[]));正常%>
------解决方案--------------------不好意思看错了,对不起啊!
哈哈 见笑了!
我知道你错的原因了
你调ArrayDemo(int array[])的时候参数怎么能这样呢?
必须要初始化,不然怎么执行方法里面的算法
int[] arr = [1,2,3,4,5];
out.print(HelloWord.ArrayDemo(arr);//这样才对
按你的思路并没有传参而是直接在方法里面定义的局部变量,你把类HelloWord里面方法ArrayDemo的参数删除即可。
这样掉就行
out.print(HelloWord.ArrayDemo();//也对
------解决方案--------------------首先,你在调用静态方法ArrayDemo没有传入参数,修改如下
int array[] = {1,2,3}; //定义传入参数
out.print(HelloWord.ArrayDemo(array);
其次,你定义的方法ArrayDemo中的int数组参数根本就没有用到,应该是int a[]吧