2012-07-25 36 views
1

這個功能是寫一個jsp文件的HEAD標籤內,我把它從JSP BODY標籤內:變量裏面寫了一個JSP功能無法識別

<%! 
public void func1(String var1, String var2) 
{ 
    String Name = var1 + "," + var2; 
%> 
    <input type='image' name=<%=Name%> 
    src='somePath' onclick="submit()"/></br> 
<%! 
} 
%> 

我得到一個錯誤信息: 「找不到符號 符號:變量名稱 位置:類SimplifiedJSPServlet」

任何建議,爲什麼名稱無法識別?我是否正確寫入並將其放置在正確的位置?

+0

必讀閱讀:[如何避免JSP文件中的Java代碼?](http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files) – Reimeus 2014-05-11 14:12:37

回答

3

看起來您的變量Name僅在第一個腳本片段中定義。聲明爲類成員變量使用:

<%! 
     String name; 
%> 

以外的任何方法範圍。

0

您的變量只在函數調用期間的範圍內。要訪問值,你需要做這樣

request.setAttribute("name", name); 

裏面的東西你的函數(你可以使用的pageContext或要求 - 我不知道你想要什麼範圍

那麼你的功能,你可以簡單的外面。不要

<input type='image' name="${name}" /> 
1
<%! 
public void func1(String var1, String var2) 
{ 
    String Name = var1 + "," + var2; 
    out.println("<input type='image' name='" + Name + "' src='somePath' onclick='submit()'/><br>"); 
} 
%> 

然後你就可以無論你在JSP要調用上面的方法。

Ex: <%= func1("Text1", "Text2") %>