我有一種方法,我拿了一個變量int b = 10 &我想在顯示方法中打印這個值 。我該怎麼做 ?如何在JSP中使用聲明標籤?
<%!
int b=10;
public void display()
{
out.print(b);
}
%>
但它給錯誤,如「無法解決」。
我有一種方法,我拿了一個變量int b = 10 &我想在顯示方法中打印這個值 。我該怎麼做 ?如何在JSP中使用聲明標籤?
<%!
int b=10;
public void display()
{
out.print(b);
}
%>
但它給錯誤,如「無法解決」。
腳本元素內service
法執行,並且每次調用此方法來處理它需要創建自己的一套局部變量的不與service
方法,它將處理不同要求的其他調用碰撞有一定的要求。其中一個局部變量是out
。
由於<%! ... %>
負責在類級聲明代碼,因此它無法訪問局部變量service
方法。
如果你真的需要訪問out
,你可以將它傳遞給display
方法參數一樣
public void display(JspWriter out) //javax.servlet.jsp.JspWriter
{
out.print(b);
}
您還可以創建其他的方法,該方法而不是被負責顯示,將返回要顯示的內容像
public int getB()
{
return b;
}
您可以在小腳本使用out
像<% out.print(getB()); %>
或<%=getB()%>
是的,它的工作非常感謝。 –
哈哈。嗯你是對的。等待.......... –
scriptlet與<%一起引入,而不是<%!此外,還有一些信息丟失。這是否運行在服務器內的JSP文件中,例如Tomcat?
應該定義「out」變量,因爲它是JSP中的標準預定義變量。
如果你在'<% %>'而不是'<%! %>'中,則'out'被定義... ...並且是的,有'<%! %>'這樣的東西。 – developerwjk
無論放置在聲明標記內部,在JSP初始化階段都會被初始化。所以隱含對象「out」在這裏還不可用。
如果你真的需要輸出一些自己的方法中(在JSP類),你可以做這樣的:
<%!
int b=10;
public void display(HttpServletResponse res) {
try {
res.getWriter().write(b) ;
} catch (IOException e) {
//
}
}
%>
在jsp
及更高版本:
<%= display(response) %>
異常存在的哈: –
堆棧跟蹤:]與根源 org.apache.jasper.JasperException:無法編譯類JSP:23在jsp文件:在線路發生 錯誤/NewFile.jsp 的方法打印(boolean)在JspWriter類型中不適用於參數(void) –
以及在哪裏「出'宣佈?在目前的腳本中聲明它(雖然腳本是不好的做法,不安全和過時) – smoggers