this is the class I want to use in my jsp:
package com.entity;
public class Days {
private int d;
public int getD() {
return d;
}
public void setD(int d) {
this.d = d;
}
public Days() {
super();
}
public Days(int d) {
super();
this.d = d;
}
}
this is my jsp code
<%@page import="org.eclipse.jdt.internal.compiler.ast.ForeachStatement"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.io.*,
com.entity.Days,com.factory.*,
net.sf.jasperreports.engine.*,
net.sf.jasperreports.engine.util.*,
java.util.*,java.sql.*,
net.sf.jasperreports.engine.export.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
<%@ include file="/WEB-INF/views/include/easyui.jsp"%>
<script src="${ctx}/static/plugins/My97DatePicker/WdatePicker.js" type="text/javascript"></script>
</head>
<body style="font-family: '';">
<div id="tb" style="padding:5px;height:auto;font-size:12px;" class="datagrid-toolbar">
<div>
<span>report type:</span>
<select id="reportType" class="easyui-combobox" name="dept" >
<OPTION value="1">waterlevel</OPTION>
<OPTION value="2">rainfall</OPTION>
<OPTION value="3">pressure</OPTION>
</select>
<span class="toolbar-item dialog-tool-separator"></span>
<span>month:</span>
<input id="db" type="text" name="from" class="easyui-datebox" data-options="width:150,prompt: 'month'"/>
<span class="toolbar-item dialog-tool-separator"></span>
<a href="" class="easyui-linkbutton" plain="true" iconCls="icon-search" onclick="view()">check</a>
</div>
</div>
<%
Days days = new Days(2);
out.println(days.getD());
%>
<%--
File reportFile = new File(application.getRealPath("WEB-INF/views/jasper/successday.jasper"));
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile);
try{
//java bean
JRDataSource dataSource = new JRBeanCollectionDataSource(DaysFactory.get());
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile);
jasperPrint = JasperFillManager.fillReport(jasperReport, null, dataSource);
JRHtmlExporter exporter = new JRHtmlExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
exporter.exportReport();
out.flush();
}catch(Exception e){
e.printStackTrace();
}
--%>
<hr>
</script>
</body>
</html>
this is the error
HTTP Status 500 - Unable to compile class for JSP:
[
This is the StackTrace:
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:468)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
So, whatever the class is, the same the error is!
You must import you class Days
into the jasper
template.
Inside your jrxml
file it will looks like that :
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="yourreport">
<!-- properties -->
<import value="com.entity.Days"/>
<!-- the rest body of template -->
</jasperReport>
Then you must compile your template with com.entity.Days
on classpath (in iReport or in JasperSoftStudio). After this steps it must works!