Ferindo Middleton
2010-09-03 03:32:28 UTC
I've written a javabean that connects to a database, downloads a file,
and one of the getter methods returns the complete file path to the
file.
The problem I have is: when the JSP runs and gets to the part where it
gets the file path to pass to the taglib, I get an error message that
is typical of a reference to a nonstatic variable. This concerns me as
I thout getter methods in javabeans would inherently returns values
that are valid instance variables in a JSP.
I will paste my getter method below, the JSP call to that method and
the error message below: any guidance is welcome. Thank you:
Getter method in jsvabean (javabean compiles fine):
public String getTempFilePath() {
this.downloadedfilename=tempFilePath;
return this.downloadedfilename;
}
JSP call to getter method above:
<jsp:useBean id="getFilePath" scope="request"
class="hall.RadTicketsFileDownloadForEmailAttachmentBean">
<jsp:setProperty name="getFilePath"
property="fileId"
value="${all_attachments_for_this_ticket_row.id}" />
<jsp:setProperty name="getFilePath"
property="originalFileName"
value="${all_attachments_for_this_ticket_row.attachment_name}" />
<c:forEach items="${all_attachments_for_this_ticket.rows}"
var="all_attachments_for_this_ticket_row">
<%-- /RadTicketsFileDownloadForEmailAttachment?attachmentId=${
all_attachments_for_this_ticket_row.id}&fileName=${all_attachments_for_this_ticket_row.attachment_name}
--%>
<mt:attach type="application/octet-stream"
name="${all_attachments_for_this_ticket_row.attachment_name}"
filename="<%=
RadTicketsFileDownloadForEmailAttachmentBean.getTempFilePath() %>" />
</c:forEach>
</jsp:useBean>
... And the error message:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 97 in the jsp file:
/web/radtickets/ticket_email_response/ticket_email_response_dispatcher_page.jsp
Cannot make a static reference to the non-static method
getTempFilePath() from the type
RadTicketsFileDownloadForEmailAttachmentBean
94:
95:
96: <%-- /RadTicketsFileDownloadForEmailAttachment?attachmentId=${all_attachments_for_this_ticket_row.id}&fileName=${all_attachments_for_this_ticket_row.attachment_name}
--%>
97: <mt:attach type="application/octet-stream"
98: name="${all_attachments_for_this_ticket_row.attachment_name}"
99: filename="<%=
RadTicketsFileDownloadForEmailAttachmentBean.getTempFilePath() %>" />
100:
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Ferindo
and one of the getter methods returns the complete file path to the
file.
The problem I have is: when the JSP runs and gets to the part where it
gets the file path to pass to the taglib, I get an error message that
is typical of a reference to a nonstatic variable. This concerns me as
I thout getter methods in javabeans would inherently returns values
that are valid instance variables in a JSP.
I will paste my getter method below, the JSP call to that method and
the error message below: any guidance is welcome. Thank you:
Getter method in jsvabean (javabean compiles fine):
public String getTempFilePath() {
this.downloadedfilename=tempFilePath;
return this.downloadedfilename;
}
JSP call to getter method above:
<jsp:useBean id="getFilePath" scope="request"
class="hall.RadTicketsFileDownloadForEmailAttachmentBean">
<jsp:setProperty name="getFilePath"
property="fileId"
value="${all_attachments_for_this_ticket_row.id}" />
<jsp:setProperty name="getFilePath"
property="originalFileName"
value="${all_attachments_for_this_ticket_row.attachment_name}" />
<c:forEach items="${all_attachments_for_this_ticket.rows}"
var="all_attachments_for_this_ticket_row">
<%-- /RadTicketsFileDownloadForEmailAttachment?attachmentId=${
all_attachments_for_this_ticket_row.id}&fileName=${all_attachments_for_this_ticket_row.attachment_name}
--%>
<mt:attach type="application/octet-stream"
name="${all_attachments_for_this_ticket_row.attachment_name}"
filename="<%=
RadTicketsFileDownloadForEmailAttachmentBean.getTempFilePath() %>" />
</c:forEach>
</jsp:useBean>
... And the error message:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 97 in the jsp file:
/web/radtickets/ticket_email_response/ticket_email_response_dispatcher_page.jsp
Cannot make a static reference to the non-static method
getTempFilePath() from the type
RadTicketsFileDownloadForEmailAttachmentBean
94:
95:
96: <%-- /RadTicketsFileDownloadForEmailAttachment?attachmentId=${all_attachments_for_this_ticket_row.id}&fileName=${all_attachments_for_this_ticket_row.attachment_name}
--%>
97: <mt:attach type="application/octet-stream"
98: name="${all_attachments_for_this_ticket_row.attachment_name}"
99: filename="<%=
RadTicketsFileDownloadForEmailAttachmentBean.getTempFilePath() %>" />
100:
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Ferindo