在這裏,我找到了答案傢伙。感謝您的答覆。首先我會告訴你文件夾結構。
enter image description here
首先你要在上面顯示庫添加到您的應用程序。 然後這是jsp文件代碼。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="resources/bootstrap/bootstrap-theme.css"/>
<link rel="stylesheet" type="text/css" href="resources/bootstrap/bootstrap-theme.min.css"/>
<link rel="stylesheet" type="text/css" href="resources/bootstrap/bootstrap.css"/>
<link rel="stylesheet" type="text/css" href="resources/bootstrap/bootstrap.min.css"/>
<title>Jasper Report Example</title>
</head>
<body>
<form class="form-horizontal" class="form-inline" method="post" action="GetUserData" style="margin-left: px;margin-right: 5px;">
<div style="padding-bottom: 25px;"></div>
<div class="form-group">
<label class="control-label col-sm-3">First Name*</label>
<div class="col-sm-6">
<input name="firstname" id="idfirstname" class="form-control input-sm">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3">Last Name*</label>
<div class="col-sm-6">
<input name="lastname" id="idlastname" class="form-control input-sm">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3">Email*</label>
<div class="col-sm-6">
<input name="email" id="idemail" class="form-control input-sm">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3">Phone Number*</label>
<div class="col-sm-6">
<input name="phonenumber" id="idphonenumber" class="form-control input-sm">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3">NIC*</label>
<div class="col-sm-6">
<input name="nic" id="idnic" class="form-control input-sm">
</div>
</div>
<div class="form-group">
<div class="col-xs-offset-5 col-xs-10">
<button type="submit" class="btn btn-primary " style="padding-left: 25px;padding-right: 25px;">Sumbit</button>
</div>
</div>
</form>
</body>
當您在文件夾結構見過你必須做出POJO類。 這是UserDetails.java pojo類。
public class UserDetails {
private String firstname;
private String lastname;
private String email;
private String phonenumber;
private String nic;
/**
* @return the firstname
*/
public String getFirstname() {
return firstname;
}
/**
* @param firstname the firstname to set
*/
public void setFirstname(String firstname) {
this.firstname = firstname;
}
/**
* @return the lastname
*/
public String getLastname() {
return lastname;
}
/**
* @param lastname the lastname to set
*/
public void setLastname(String lastname) {
this.lastname = lastname;
}
/**
* @return the email
*/
public String getEmail() {
return email;
}
/**
* @param email the email to set
*/
public void setEmail(String email) {
this.email = email;
}
/**
* @return the phonenumber
*/
public String getPhonenumber() {
return phonenumber;
}
/**
* @param phonenumber the phonenumber to set
*/
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
/**
* @return the nic
*/
public String getNic() {
return nic;
}
/**
* @param nic the nic to set
*/
public void setNic(String nic) {
this.nic = nic;
}
}
創建簡單的POJO類之後,現在你必須在文件夾結構report.controller包看到控制器class.As包含控制器類GetUserData.java servlet的文件。
這是GetUserData.java servlet文件代碼。
public class GetUserData extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, JRException {
//response.setContentType("application/pdf");
//PrintWriter out = response.getWriter();
String firstname = request.getParameter("firstname");
String lastname = request.getParameter("lastname");
String email = request.getParameter("email");
String phonenumber = request.getParameter("phonenumber");
String nic = request.getParameter("nic");
HashMap parametermap = new HashMap();
parametermap.put("firstname", firstname);
parametermap.put("lastname", lastname);
parametermap.put("email", email);
parametermap.put("phonenumber", phonenumber);
parametermap.put("nic", nic);
GenerateReport generatereportinstance = new GenerateReport();
byte[] outputarray = generatereportinstance.GenerateReport(request.getServletContext(),parametermap);
OutputStream outStream = response.getOutputStream();
response.setHeader("Content-Disposition", "filename=UserDetailsReport.pdf");
response.setContentType("application/pdf");
response.setContentLength(outputarray.length);
outStream.write(outputarray, 0, outputarray.length);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
processRequest(request, response);
} catch (JRException ex) {
Logger.getLogger(GetUserData.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
processRequest(request, response);
} catch (JRException ex) {
Logger.getLogger(GetUserData.class.getName()).log(Level.SEVERE, null, ex);
}
}
現在是最後一個編碼部分。創建包report.utility包中的業務邏輯。 這是GenerateReport.java類文件代碼。
public class GenerateReport {
JasperPrint jasperPrint = null;
public byte[] GenerateReport(ServletContext servletContext, HashMap parametermap) {
byte[] outputFile = null;
try {
try {
String file = servletContext.getRealPath("/WEB-INF/report/UserDetails.jasper");
System.out.println("Generating PDF Report");
JasperPrint jasperPrint =JasperFillManager.fillReport(file,parametermap,new JREmptyDataSource());
outputFile =JasperExportManager.exportReportToPdf(jasperPrint);
System.out.println("User Details.pdf has been generated!");
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return outputFile;
}
}
現在你做什麼more.create報告是下一個。 我已經使用iReport 5.6.0創建了UserDeatails.jasper報告。 使用iReport創建您的報告的基本結構後,右鍵點擊報告轉到 - >屬性 - >語言(選擇java的語言) 其他明智的報告可能會出現錯誤。 然後將report.and編譯後的.jasper文件編譯爲項目,如文件夾結構中所示。
我將添加碧玉報告的圖像。
enter image description here
這是所有guys.Again感謝您的答覆。
這是廣泛的(您要求提供一個指導您如何設置您的jsp servlet,生成報告的java代碼以及如何開發jrxml代碼ecc)。您需要了解jasper報告如何工作(下載JasperSoftStudio等IDE),如何使用jsf servlet(導出爲pdf)以及何時使用.jrxml或java存在特定問題,請發佈您正在使用的代碼,你的輸出是什麼,你想要的結果是什麼 –