【问题标题】:Printing text to webpage inside a Java method in JSP在 JSP 中的 Java 方法内将文本打印到网页
【发布时间】:2015-06-14 14:44:57
【问题描述】:

我一直在努力在 Java 服务器页面上的 Java 方法中打印文本。以下是我尝试打印从 Tomcat(版本 7.0.56)编译器抛出的文本和错误的一些方法:

<%
class Base {
    public void main() {
    String Text = "ThisIsText";
    out.println(Text);
    }
}
%>

错误:无法引用在封闭中定义的非最终局部变量 out 范围

<%
class Base {
static Text;
public void main() {
String Text = "ThisIsText";
}
out.println(Text);
}
%>

语法错误,插入“Identifier(”来完成MethodHeaderName

<%
class Base {
static Text;
public String text() {
String Text = "NewText";
return Text;
}
}
%>
<%text();%>

Base_jsp 类型的方法 text() 未定义

有没有办法直接从 JSP scriptlet 中的 Java 方法打印 HTML 文本?

【问题讨论】:

  • 您不(通常)在 JSP 内部定义一个类,JSP 将被编译成一个。确实,有成千上万的 JSP 入门教程,请仔细阅读其中的一些,而不是从一开始就尝试从 Trial-and-askSO 中学习。

标签: java apache jsp tomcat


【解决方案1】:

改为使用声明性标签

 <%!

            class Base {

                JspWriter out;

                public Base(JspWriter out) {
                    this.out = out;
                }

                public void main() {
                    String Text = "ThisIsText";
                    try {
                        out.println(Text);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

                }
            }
        %>
    <%(new Base(out)).main();%>

当你在&lt;%%&gt; 中写一些东西时,这些标签之间的代码被放置在方法中,因此你不能在该标签内声明函数或类,因为我们不能在方法内有方法或类。

Similar,Also check

【讨论】:

    【解决方案2】:

    out 变量已经在方法中 - _jspService。因此,如果您要使用 out,请使用声明 - &lt;%! 声明另一个以 out 作为参数的方法,然后调用此方法。

    【讨论】:

      猜你喜欢
      • 2012-05-13
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多