您好我正在尝试在jsp页面中调用常规java类,并希望在我尝试执行时在jsp页面上打印一些我没有得到任何输出
这是我的代码
MyClass.java
package Demo;
public class MyClass {
public void testMethod(){
System.out.println("Hello");
}
}
test.jsp的
<%@ page import="Demo.MyClass"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<jsp:useBean id="test" class="Demo.MyClass" />
<%
MyClass tc = new MyClass();
tc.testMethod();
%>
</body>
</html>
如何获得所需的输出?
答案 0 :(得分:10)
您的代码中不需要JSP useBean声明。
只需使用
<body>
<%
MyClass tc = new MyClass();
tc.testMethod();
%>
</body>
但是这不会在JSP上打印任何东西。它只会在服务器的控制台上打印Hello
。
要在JSP上打印Hello
,您必须从帮助程序java类MyClass
返回一个String,然后使用JSP输出流来显示它。
这样的事情:
在java类
中public String testMethod(){
return "Hello";
}
然后在JSP中
out.print(tc.testMethod());
答案 1 :(得分:1)
您正确使用您的班级名称
<%
MyClass tc = new MyClass ();
tc.testMethod();
%>
而不是
<%
testClass tc = new testClass();
tc.testMethod();
%>
当你使用jsp:useBean时,它会在jsp转换的servlet中创建一个名为id的新对象。
所以使用id本身调用方法而不是再次创建新对象
答案 2 :(得分:1)
只是为了完成所有机会,你也可以使用&lt;%= opertator:
<%
MyClass tc = new MyClass ();
%>
<h1><%= tc.testMethod(); %> </h1>
只是为了恢复,关键点: