2014-05-04 110 views
0

我需要從MySQL DB中檢索一個.doc文件,並將其存儲爲BLOB數據類型。這是我的操作文件的代碼使用Struts在JSP中顯示來自BLOB MySQL的doc文件

List<CandyDetails> det = new ArrayList<CandyDetails>(); 
CandyDetails details = new CandyDetails(); 

ResultSet rs3 = st.executeQuery("SELECT * FROM seek_resume WHERE seek_code = '"+seekCode+"'"); 
    while(rs3.next()){ 
     details.setResume(rs3.getBytes(2)); 
} 

request.setAttribute("candyDet", det); 
return mapping.findForward("success"); 

這CandyDetails.java文件

private byte[] resume; 
//getter/setter methods 

這是我的JSP頁面代碼

<logic:iterate name="candyDet" id="in"> 
    ${in.resume} 
</logic:iterate> 

我得到的jsp頁面上的輸出是一些亂碼

[[email protected] 

T B @後的數字似乎在每次刷新時都在變化。

我正在使用Struts 1.3。

回答

0

把它放在一個Action類中

String qry="SELECT * FROM seek_resume WHERE seek_code = '"+seekCode+"'""; 
Statement st = con.createStatement(qry);     
ResultSet rs = st.executeQuery(); 
if(rs.next()) //show one document 
{ 
    byte[] bytearray = new byte[1048576]; 
    int size=0; 
    InputStream is = rs.getBinaryStream(2); 
    // String contentType=rs.getString("content_type"); 
    String contentType = "application/msword"; //doc 
    String contentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; //docx      
    response.reset(); 
    response.setContentType(contentType); 
    while((size=is.read(bytearray))!= -1) 
    { 
     response.getOutputStream().write(bytearray,0,size); 
    } 
} 

//return null; 

---------- JSP --------

<a href="showDoc.do?seekCode=${seekCode}" target="_blank"> View</a> 

//把你的鏈接,你要求。

通過將代碼傳遞給動作類來調用動作類將inturn給你的文檔作爲響應。

OR

您可以使用Apache POI顯示文檔的內聯內容。