用过jasperreports的大侠请到这里来解决JasperViewer.viewReport 这个怪问题,来者有分
用JasperViewer.viewReport遇到一怪问题.当用JasperViewer.viewReport(jasperPrint, false);时预览窗口在服务器端打开,客户不显示任何窗口.我用的是Appfuse框架(sturts + spring +hibernate ).
代码如下:
/**
*
* @struts.action name="alarmSearchForm" path="/testreport" scope="request"
* validate="false" parameter="method" input="mainMenu" roles="manager"
*
* @struts.action-forward name="pdfreport" path="/WEB-INF/reports/viewer.jsp"
*/
public final class ReportAction extends BaseAction {
private String format = "pdf";
private String WebDir = null;
public String getFormat() {
return format;
}
public void setFormat(String format) {
this.format = format;
}
public String getWebDir() {
return WebDir;
}
// used only in during junit test
public void setWebDir(String webDir) {
WebDir = webDir;
}
public ActionForward print(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception{
String strsql=" ";
connManager uamgr =(connManager)getBean("connManager");
Map parameters = new HashMap();
String ctxPath = servlet.getServletContext().getRealPath("/");
parameters.put("format", "pdf");
if (WebDir != null){
parameters.put("WEBDIR", WebDir);
}
try{
InputStream is = servlet.getServletContext().getResourceAsStream("/WEB-INF/reports/tua.jrxml");
JasperDesign jasperDesign = JRXmlLoader.load(is);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport,parameters,uamgr.getConn());
boolean isExitOnClose=false;
JasperViewer.viewReport(jasperPrint,isExitOnClose);
}
catch(Exception e){
log.error(e);
}
return mapping.findForward("pdfreport");
}
}
可以生成PDF,但就是JasperViewer.viewReport不知道怎搞.