如何在Jsp中调用Java类

时间:2014-04-28 05:57:20

标签: java jsp

您好我正在尝试在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>

如何获得所需的输出?

3 个答案:

答案 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>

只是为了恢复,关键点:

  1. 包含&lt;%@ page import tag
  2. 的类
  3. 像往常一样在.java行为中使用该类
  4. 使用out.print打印数据,&lt;%=或jstl out tag