Specific usage of my JasperReport

xiaoxiao2021-03-06  99

My system: JSP STRTUS EJB DAO DB

My Idea: In the Action (Ro Dispatchction), the parameters needed to report the report, then pass to the unified display servlet

My implementation

1. Show servlet

2. Parameter Class

3.Action

1. Show servlets (HTML here)

Public class jrhtmlservlet extends httpservlet {

/ **

*

* /

Public void service

HTTPSERVLETREQUEST REQUEST,

HTTPSERVLETRESPONSE RESPONSE

"Throws oException, servletexception {

// Get the required parameters

JRPARAMETERFACE JREPORTPARAM = NULL;

JreportParam = (JRPARAMETERFACE) Request.GetaTribute ("jreportparam");

Response.setContentType ("text / html; charSet = GB2312");

PrintWriter out = response.getwriter ();

Try

{

JasperReport JasperReport = (JasperReport) JRLOADER.LOADOBJECT (JREPORTPARAM.GETJASPERFILE (). Getpath ());

JasperPrint JasperPrint =

JasperfillManager.FillReport

JasperReport,

Jreportparam.getParameters (),

Jreportparam.getdataSet ()

);

JRHTMLEXPORTER EXPORTER = New JRHTMLEXPORTER ();

Map imagesmap = new hashmap ();

Request.getations (). SetaTribute ("iMages_map", ImageSmap;

Exporter.SetParameter (JrexporterParameter.jasper_Print, Jasperprint);

Exporter.SetParameter (JrexporterParameter.output_Writer, Out);

Exporter.SetParameter (JRHTMLEXPORTERPARETER.IMAGES_MAP, IMAGESMAP);

Exporter.SetParameter (JRHTMLEXPORTERPARETER.IMAGES_URI, "JRREPORT / IMAGE? Image =");

Exporter.exportReport ();

}

Catch (JRException E)

{

Out.println ("");

Out.println ("");

Out.println (" JasperReports - Web Application Sample>");</p> <p>// out.println ("<link rel = /" stylesheet / "type = /" text / css / "href = /" ../ style = / "style /"> "); OUT. Println ("</ HEAD>");</p> <p>Out.println ("<body bgcolor = /" white / ">");</p> <p>Out.println ("<span class = /" bnew / "> jasperreports encountered this error: </ span>");</p> <p>OUT.PRINTLN ("<pre>");</p> <p>E.PrintStackTrace (OUT);</p> <p>OUT.PRINTLN ("</ pre>");</p> <p>Out.println ("</ Body>");</p> <p>Out.println ("</ html>");</p> <p>}</p> <p>}</p> <p>}</p> <p>2. Parameter Class</p> <p>Public interface jrparameterinterinterface {</p> <p>// set required parameters</p> <p>Void setParameters (Object Object, Object Object1);</p> <p>/ / Return the required file</p> <p>File getjasperfile ();</p> <p>/ / Back to page of Parameter</p> <p>Map getparameters ();</p> <p>/ / Return to the page of the page, if you are empty, return (New JREMPTYDATASOURCE ()), otherwise return (New WebAppdataSource (DATA))</p> <p>JRDataSource getDataSet ();</p> <p>}</p> <p>Implementation</p> <p>Public Class JreportParam IMPLEments JRPARETERFACE {</p> <p>Private Dataset JRDATA;</p> <p>PRIVATE JASPERFILE;</p> <p>Private JrdataSource JrdataSource;</p> <p>Private map parametermap;</p> <p>Public JreportParam (File Jasperfile, Dataset Data) {</p> <p>THIS.JASPERFILE = JASPERFILE;</p> <p>JRDATA = DATA;</p> <p>Parametermap = new hashmap ();</p> <p>}</p> <p>Public JreportParam (File Jasperfile) {</p> <p>THIS (Jasperfile, (Dataset) NULL;</p> <p>}</p> <p>Public JreportParam (File Jasperfile, JRDataSource Jrdata) {</p> <p>THIS.JASPERFILE = JASPERFILE;</p> <p>JRDataSource = JRDATA;</p> <p>Parametermap = new hashmap ();</p> <p>}</p> <p>// set required parameters</p> <p>Public void setParameters (Object Object, Object Object1) {</p> <p>ParameterMap.Put (Object, Object1);</p> <p>}</p> <p>/ / Return the required file</p> <p>Public file getjasperfile () {</p> <p>Return jasperfile;</p> <p>}</p> <p>/ / Back to page of Parameter</p> <p>Public map getParameters () {</p> <p>Return ParameterMap;</p> <p>}</p> <p>/ / Return to the page of the page, if you are empty, return (New jremptyDataSource ()), otherwise return (New WebAppDataSource (DATA)) public jrdataser getDataSet () {</p> <p>IF (JRDataSource == NULL) {</p> <p>IF ((JRDATA == Null) || (JRDATA.GETRETCODE (). Equals ("NO_DATA"))) {</p> <p>JRDataSource = New jremptyDataSource ();</p> <p>} else {</p> <p>JRDataSource = New WebAppdataSource (JRDATA);</p> <p>}</p> <p>}</p> <p>Return JRDataSource;</p> <p>}</p> <p>}</p> <p>3.Action</p> <p>/ / Need to get an absolute path PATH</p> <p>File ReportFile = New File (Path "Demo.jasper");</p> <p>JreportParam JreportParam = New JreportParam (Reportfile, Dataset);</p> <p>JreportParam.SetParameters ("ReportTitle", "My Demo");</p> <p>HttpservletRequest.setttribute ("JreportParam", JreportParam);</p> <p>ActionForward = ActionMapping.FindForward (ReportType);</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-124399.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="124399" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.030</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'Kvc7S2kwmIvN_2BJBwpv1Ks7EGh84eabksFcN64QhOuyHX7hRrgjM5BNFllcEPGd_2Fd_2F3lUJlJG_2FtxUY1ie'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>