0

JSP に関数があり、それを呼び出すとエラーが発生し、その理由がよくわかりません。関数コードは、必要な場所に貼り付けるだけで問題なく動作します。

タイプ console_jsp のメソッド console_table(PrintWriter, int, String[]) は、引数 (JspWriter, int, String[]) には適用されません。

JSP関数

<%!
public void console_table (java.io.PrintWriter out, int stackNr, String [] pstackNr) {
int c=0;
for(int i=0;i<stackNr;i++) {
    out.println("<h3>Stiva "+(i+1)+"</h3>");
    out.println("<div id='content_wrap'>");
    for(int j=0;j<Integer.parseInt(pstackNr[i]);j++){

        out.println("<div id='structure'>");
        out.println("<div class='stack'>");
        out.println("<table border='1'>");
        out.println("<tr>");
        out.println("<td><div id='empty"+c+"' class='empty'></div></td>");
        out.println("<td><div id='empty"+c+"' class='empty'></div></td>");
        out.println("<td><div id='empty"+c+"' class='empty'></div></td>");
        out.println("<td><div id='empty"+c+"' class='empty'></div></td>");
        out.println("</tr>");
        out.println("</table>");
        out.println("</div>");
        out.println("</div>");
        c++;
    }
    out.println("</div>");
}
}
%>

ファイルのインポート

<%@ include file="src/libs/console.lib.jsp" %>

呼び出し機能

<% 
int stackNr = 3;
String [] pstackNr = db_pstackNr.split(",");
console_table (out, stackNr, pstackNr); 
%>
4

1 に答える 1

1

変化する

public void console_table (java.io.PrintWriter out, int stackNr, String [] pstackNr)

public void console_table (javax.servlet.jsp.JspWriter out, int stackNr, String [] pstackNr) throws java.io.IOException

変化する

console_table (out, stackNr, pstackNr); 

try {
    console_table (out, stackNr, pstackNr); 
} catch (java.io.IOException e) {
    //handle the exception
}

動作させる必要があります。基本的に問題は、'out' が JspWriter のインスタンスであり、PrintWriter と互換性がないことです。(JspWriter が PrintWriter のサブクラスであれば問題ありませんが、どちらも java.io.Writer の直接のサブクラスです)

http://docs.oracle.com/javase/6/docs/api/java/io/PrintWriter.html http://docs.oracle.com/javaee/6/api/javax/servlet/jsp/JspWriter.html

于 2013-05-29T19:11:32.317 に答える