java - How to test if an error occurred on the Server, and output client side -


okay, i've been working on few days, , i've hit of issue. basically, idea simple. user clicks link, , sends request server generate pdf document. isn't downloaded per se. sent browser in form of attachment.

the issue simple. if goes wrong in generating pdf document, don't want browser attempt download file. i've got in motion @ moment simple.

  if(req.getparametermap().containskey("report")) {             if(req.getparameter("report").equals("true"))             {                 // if query string parameter set, generate pdf.                 if(!pdfreportgenerator.generatereport(res, repositoryuri)) {                     // went wrong, redirect browser.                     res.sendredirect(req.getrequesturi());                 }             }         } 

at moment, re-direct user page they're on. in short, nothing happens. okay-ish, i'd rather have nice browser feedback. 1 method can think of @ moment appending "?error=pdf or along lines onto end of url, possible user have other functionality requires query strings.

my question is, there way, other query string, send message browser when downloading attachment, error has occurred. i'm open suggestions; imagine javascript going language of choice here.

i have simple solution you...

if(req.getparameter("report").equals("true")) {   req.getsession().setattrinute("report_ok",false);   //if query string parameter set, generate pdf.   if(!pdfreportgenerator.generatereport(res, repositoryuri)) {     // went wrong, redirect browser.     res.sendredirect(req.getrequesturi());   }else{     req.getsession().setattrinute("report_ok",true);   } } 

now in requesturi page have document.ready() function check ajax state of report_ok variable.

case 1: if value null means request in not callback code above, don't display user.

case 2: if value false, means error happened , can inform user it.

case 3: if value true, generation of pdf successful , should inform user accordingly.

don't forget remove attribute session after check ajax when refresh page, or revisit it, ajax go case 1.

update

how make ajax call :

$(document).ready(function() {   var divtochange = $('#message');//div id of message show user   $.ajax({     type: 'post',     url: 'checkreport.jsp',     data: {},     beforesend:function(){         divtochange.html('loading...');     },     success:function(data){         divtochange.html(data);     },     error:function(){         divtochange.html('checking file failed!');     }   }); )}; 

and on checkreport.jsp :

<% boolean status = (boolean) session.getattribute("report_ok"); if(status==null){     //dont return }else if(status){     out.print("report ok"); }else {     out.print("report generation failed "); } %> 

Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -