【问题标题】:How to call Java class in Jsp如何在 Jsp 中调用 Java 类
【发布时间】:2014-06-13 13:13:17
【问题描述】:

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

我怎样才能得到我想要的输出?

【问题讨论】:

  • System.out 标识您的 Web 服务器的控制台,通常由 Web 服务器重定向到文件。如果要写入浏览器,则必须写入 JSP Writer。但是你永远不应该在 JSP 中使用 scriptlet。对 Java 代码使用 servlet,并且只使用 JSP EL、JSTL 和 JSP 中的自定义标记。阅读有关 MVC 的信息。阅读stackoverflow.com/questions/2188706/…
  • testClass 是什么?应该是MyClass

标签: java jsp


【解决方案1】:

您的代码中不需要 JSP useBean 声明。

随便用

<body>
<%
  MyClass tc = new MyClass();
  tc.testMethod();
%>
</body>

但这不会在 JSP 上打印任何内容。它只会在服务器的控制台上打印Hello。 要在 JSP 上打印 Hello,您必须从帮助程序 java 类 MyClass 返回一个字符串,然后使用 JSP 输出流来显示它。

类似这样的:

在java类中

public String testMethod(){
    return "Hello";
}

然后在 JSP 中

out.print(tc.testMethod());

【讨论】:

  • 我用这个显示错误信息 void type is not allowed here
  • 可能在您的 java 类中,您的方法中仍然有 void 作为返回类型。那是错误的。 Void 告诉编译器该方法不会返回任何内容。将void 替换为String
【解决方案2】:

您好,请正确使用您的班级名称

<%
 MyClass tc = new MyClass ();
        tc.testMethod();

  %>

而不是

<%
 testClass tc = new testClass();
        tc.testMethod();

  %>

当你使用 jsp:useBean 时,它会在你的 jsp 转换的 servlet 中创建一个名称为 id 的新对象。

所以使用该 id 本身来调用方法而不是再次创建新对象

【讨论】:

  • 使用 MyClass 而不是 testclass 并且更改已在同一答案中更新
【解决方案3】:

只是为了完成所有机会,您还可以使用

<%
 MyClass tc = new MyClass ();
%>


<h1><%= tc.testMethod();  %> </h1>

只是为了简历,重点:

  1. 包含带有
  2. 在 .java 行为中照常使用类
  3. 使用 out.print、

【讨论】:

    猜你喜欢
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 2012-03-22
    • 2011-01-22
    相关资源
    最近更新 更多