我是Java的新手,也是JSP的新手。我遇到的问题是将“out”对象分配给这样的方法
<%!
public void printMe(javax.servlet.jsp.JspWriter out) throws java.io.IOException {
out.println("Successfully printed");
}
%>
所以我可以在scriptlet中用这样的东西简单地调用它
<% printMe(); %>
我知道这将要传递“out”对象,该对象通常在_jspservice()方法的范围内定义到名为“printMe()”的外部方法,该方法使用声明标记手动声明,其中“ out“无法直接访问对象。所以我们在那里提供它。
但是,我发现作为参数传递给手动声明的方法的“javax.servlet.jsp.JspWriter”可以用其他方式编写,如下所示
public void printMe(JspWriter out) {}
但在此之前,还有导入指令
<%@ page import="java.io.*" %>
我认为这只会缩短代码,因为我不再需要定义完整的“java.io.IOException”。所以我试着这样做
<%@ page import="java.io.*" %>
public void printMe(JspWriter out) throws IOException {
out.println("successfully printed!");
}
现在代码不起作用,但是当我将“JspWriter”更改回“javax.servlet.jsp.JspWriter”时。所以这对我有用
<%@ page import="java.io.*" %>
public void printMe(javax.servlet.jsp.JspWriter) throws IOException {
out.println("successfully printed!");
}
我不知道我的代码有什么问题,或者我必须导入其他软件包以使我能够正确使用“JspWriter”而不是完整的“javax.servlet.jsp.JspWriter”语句
非常感谢
答案 0 :(得分:1)
将JSP标记更改为scriptlets标记
<%!
public void printMe(javax.servlet.jsp.JspWriter out) throws java.io.IOException {
out.println("Successfully printed");
}
%>
要
<%
public void printMe(javax.servlet.jsp.JspWriter out) throws java.io.IOException {
out.println("Successfully printed");
}
%>
在scriptlet标记中,您可以直接使用out
,session
,request
,response