導航:首頁 > 版本升級 > struts文件在線預覽

struts文件在線預覽

發布時間:2021-12-09 06:45:21

1. 閱讀struts2文檔

呵呵,有些文檔是這樣的,可以重下一個,也不大,前面幾章都是基礎和比較,像OGNL這一章要提上來先學,他的例子中用到了很多,要不然會看不懂。
攔截器和轉換器,用到了國際化的例子,你可以先把國際化那幾章看完,當然,國際化裡面用到了OGNL的知識。
你可以大體掃一遍,知道有什麼內容,在調節這看,呵呵,慢慢來吧,struts2是個非常方便的框架

2. 怎樣將用struts2 jsp 將word文檔展現在網頁上,而且不需要選在是否保存 下載

一、把jsp頁面數據復制到word文檔

var table=document.getElementByIdx_x('printTable');
row=table.rows.length;
column=table.rows(1).cells.length;

var word = new ActiveXObject("Word.Application");
word.Application.Visible = true;
word.Selection.Text ="<%=reportTitle%>";
var mydoc=word.Documents.Add('',0,0);
myRange =mydoc.Range(0,1);
var sel=document.body.createTextRange();
sel.moveToElementText(table);
sel.select();
sel.execCommand('Copy');
myRange.Paste();

二、把jsp頁面數據寫入word文檔

var table=document.getElementByIdx_x('printTable');

row=table.rows.length;

column=table.rows(1).cells.length;

var wdapp=new ActiveXObject("Word.Application");

wdapp.visible=true;

wddoc=wdapp.Documents.Add(); //添加新的文檔

thearray=new Array();

//將頁面中表格的內容存放在數組中

for(i=0;i<row;i ){

thearray[i]=new Array();

for(j=0;j<column;j ){

thearray[i][j]=table.rows(i).cells(j).innerHTML;

}

}

var range = wddoc.Range(0,0);

range.Text="<%=reportTitle%>" " ";

wdapp.Application.Activedocument.Paragraphs.Add(range);

wdapp.Application.Activedocument.Paragraphs.Add();

rngcurrent=wdapp.Application.Activedocument.Paragraphs(3).Range;

var objTable=wddoc.Tables.Add(rngcurrent,row,column) //插入表格

for(i=0;i<row;i ){

for(j=0;j<column;j ){

objTable.Cell(i 1,j 1).Range.Text = thearray[i][j].replace("","");

}

}

三jsp生成word,excle,pdf

在web-oa系統中,公文管理好象不可或缺,有時需要從資料庫中查詢一些數據以某種格式輸出來,並以word文檔的形式展現,有時許多word文檔保存到資料庫中的某個表的Blob欄位里,伺服器再把保存在Blob欄位中的圖片文件展現給用戶。通過網上查找發現很少有關於此類的文章,現在整理起來供大家參考。

1 在client端直接生成word文檔
在jsp頁面上生成word文檔非常簡單,只需把contentType=」text/html」改為contentType="application/msword; charset=gb2312"即可,代碼如下:

通過設置可以使原來頁面的內容在word中表現出來。
如果需要把word文檔下載下來,只需在jsp頁面上面加上如下代碼:

其中filename.doc中filename是要下載的word文檔的文件名,可以通過來自行定製,如下
.doc");
%>
這樣提供一個提示信息供用戶選擇如下圖所示
小技巧:如果程序員需要在生成word文檔的時候按照自己預先在word上設計好的格式,可以復制word格式然後粘貼到frontpage中,取html代碼貼到jsp頁面即可。

2 在客戶端輸出存在資料庫中的word實體
這里只討論在client輸出oracle中BLOB欄位中的word文檔實體。其中調用了類getBlobBean,該類提供了從oracle中取出blob功能,代碼如下:
package yourpackage;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import oracle.sql.*;
import beans.yourbeanpackage. getBlobBean;

public class GetBlobServlet1 extends HttpServlet {
//設置輸出內容類型,這個設置很重要,否則客戶端瀏覽器不能識別輸出內容,導致彈出下載的對話框。
private static final String CONTENT_TYPE = "application/msword;charset=gb2312";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
perform(request,response);
}
public void perform(HttpServletRequest request, HttpServletResponse response){
try{
//該類功能是從oracle哭中取出blob實體
getBlobBean getBlob=new getBlobBean();
OutputStream sos = response.getOutputStream();
getBlob.connFunction();
oracle.sql.BLOB blob=getBlob.getBlob("cehui");
//輸出word文檔
if(blob!=null){
InputStream pi = blob.getBinaryStream();
int blobsize =(int)blob.length();
byte[] blobbytes = new byte[blobsize];
int bytesRead = 0;
while ((bytesRead = pi.read(blobbytes)) != -1) {
sos.write(blobbytes, 0, bytesRead);
}
pi.close();
sos.flush();
sos.close();
}
getBlob.dropConnFunction();
}catch(Exception e){
System.out.println(e.toString());
}
}
//Clean up resources
public void destroy() {
}
}

3 在client端直接生成EXCEL文檔
生成例子excel 。 用WORD排版面,倒出HTML 把代碼拷貝到網頁里,然後這個JSP頁面列印你就隨心所欲的控制了。

4 在client端直接生成PDF文檔
需要下載JAR包:以下代碼在JDK1.4 RESIN2.16 下測試通過

ITEXT包 http://mesh.dl.sourceforge.net/sourceforge/itext/itext-1.3.5.jar
字體包http://itext.sourceforge.net/downloads/iTextAsian.jar

JSP生成到客戶IE端直接打開
ie_PDF.jsp

-------------------------------

在伺服器端生成不下載。
server_PDF.jsp

使用iText可以設置文字的字體,對於我們中國的程序員來說如何顯示中文是最緊要的問題。幸好iText中有一個專門的包用來設置亞洲國家的字體你可以從http://itext.sourceforge.net/downloads/iTextAsian.jar下載這個包。然後把它直接放到你的ClassPath中就可以了。如何設置字體呢?

BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);

在上面的代碼中設置了中文字體的顯示,你只要使用下面的代碼就可以包中文加到PDF中了

String title = "我愛喝咖啡";

Paragraph t = new Paragraph(title, FontChinese);

doc.add(t);

3. java web中的struts.xml文件的文件開頭,在官方主頁的哪裡可以找到

如果你想知道頭文件怎麼寫:解壓下載的Struts2壓縮包,找到apps文件夾下的Struts-blank.war,解壓,然後可以在web-info/classes找到struts.xml的模板
如果你想知道.dtd文件在哪兒:解壓struts-core.jar就可以看到了。

還有,作為一個初學者,這些問題請學會用搜索引擎,而不是坐著等別人來回答,浪費自己的時間。。。

4. jsp有辦法實現word/excel的在線預覽嗎

1.jsp頁面
<s:form action="fileAction" namespace="/file" method="POST" enctype="multipart/form-data">
<!-- name為後台對應的參數名稱 -->
<s:file name="files" label="file1"></s:file>
<s:file name="files" label="file2"></s:file>
<s:file name="files" label="file3"></s:file>
<s:submit value="提交" id="submitBut"></s:submit>
</s:form>
2.Action
//單個文件上傳可以用 File files,String filesFileName,String filesContentType
//名稱要與jsp中的name相同(三個變數都要生成get,set)
private File[] files;
// 要以File[]變數名開頭
private String[] filesFileName;
// 要以File[]變數名開頭
private String[] filesContentType;

private ServletContext servletContext;

//Action調用的上傳文件方法
public String execute() {
ServletContext servletContext = ServletActionContext.getServletContext();
String dataDir = servletContext.getRealPath("/file/upload");
System.out.println(dataDir);
for (int i = 0; i < files.length; i++) {
File saveFile = new File(dataDir, filesFileName[i]);
files[i].renameTo(saveFile);
}
return "success";
}
3.配置上傳文件臨時文件夾(在struts.xml中配置)
<constant name="struts.multipart.saveDir" value="c:/temp"/>
文件下載
1.下載的url(到Action)
<a href="${pageContext.request.contextPath}/file/fileAction!down.action">下載</a>
2.struts.xml配置
<package name="file" namespace="/file" extends="struts-default">
<action name="fileAction" class="com.struts2.file.FileAction">
<!-- 下載文件配置 -->
<!--type 為 stream 應用 StreamResult 處理-->
<result name="down" type="stream">
<!--
不管實際類型,待下載文件 ContentType 統一指定為 application/octet-stream
默認為 text/plain
-->
<param name="contentType">application/octet-stream</param>
<!--
默認就是 inputStream,它將會指示 StreamResult 通過 inputName 屬性值的 getter 方法,
比如這里就是 getInputStream() 來獲取下載文件的內容,意味著你的 Action 要有這個方法
-->
<param name="inputName">inputStream</param>
<!--
默認為 inline(在線打開),設置為 attachment 將會告訴瀏覽器下載該文件,filename 指定下載文
件保有存時的文件名,若未指定將會是以瀏覽的頁面名作為文件名,如以 download.action 作為文件名,
這里使用的是動態文件名,${fileName}, 它將通過 Action 的 getFileName() 獲得文件名
-->
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<!-- 輸出時緩沖區的大小 -->
<param name="bufferSize">4096</param>
</result>
</action>
</package>
3.Action
//Action調用的下載文件方法
public String down() {
return "down";
}

//獲得下載文件的內容,可以直接讀入一個物理文件或從資料庫中獲取內容
public InputStream getInputStream() throws Exception {
String dir = servletContext.getRealPath("/file/upload");
File file = new File(dir, "icon.png");
if (file.exists()) {
//下載文件
return new FileInputStream(file);

//和 Servlet 中不一樣,這里我們不需對輸出的中文轉碼為 ISO8859-1
//將內容(Struts2 文件下載測試)直接寫入文件,下載的文件名必須是文本(txt)類型
//return new ByteArrayInputStream("Struts2 文件下載測試".getBytes());
}
return null;
}

// 對於配置中的 ${fileName}, 獲得下載保存時的文件名
public String getFileName() {
String fileName ="圖標.png";
try {
// 中文文件名也是需要轉碼為 ISO8859-1,否則亂碼
return new String(fileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
return "icon.png";
}
}

5. 如何查看struts上傳的文件

圖片查看<img src="" /> 文本類的,可以直接查看!至於pdf,如果你說的是類似網路文庫的效果,那是有js插件的,這個需要自己寫的。如果不是的話!你這樣<a href="aa.pdf">幫助</a>在火狐瀏覽器上你看到pdf內容,IE瀏覽器被默認為下載。

6. 如何在jsp中預覽struts上傳的圖片

<%@pagelanguage="java"contentType="text/html;charset=utf-8"
pageEncoding="utf-8"%>
<%@taglibprefix="s"uri="/struts-tags"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Inserttitlehere</title>
</head>
<scripttype="text/javascript">
//顯示圖片的js
functionviewimg(){
varimgup=document.getElementById("uploadimg");
varimgpath=getPath(imgup);
//判斷是否是圖片格式
varimgname=imgup.value.substring(imgup.value.lastIndexOf("."),imgup.value.length)
imgname=imgname.toLowerCase()
if((imgname!='.jpg')&&(imgname!='.gif')&&(imgname!='.jpeg')&&(imgname!='.png')&&(imgname!='.bmp')){
alert("請選擇圖片文件,謝謝!");
imgup.focus();
//清空file裡面的值
imgup.select();
document.selection.clear();

}
else{
//顯示圖片
document.getElementById("sig_preview").innerHTML="<imgsrc='"+imgpath+"'border=0width=100height=60>"
}
}
//該函數解決iE下路徑問題。兼容ie6,7,firefoxaddbyexceljava2010-1-6
functiongetPath(obj){
if(obj){
if(window.navigator.userAgent.indexOf("MSIE")>=1){
obj.select();
returndocument.selection.createRange().text;
}elseif(window.navigator.userAgent.indexOf("Firefox")>=1){
if(obj.files){
returnobj.files.item(0).getAsDataURL();
}
returnobj.value;
}
returnobj.value;
}
}</script>
<body>
<s:formaction="fileUpload"namespace="/fileUploadDemo"method="POST"enctype="multipart/form-data">
<s:fileid="uploadimg"size="40"name="upload"onchange="viewimg()"></s:file>
<s:submit/>
</s:form>

<!--顯示的div-->
<divid="sig_preview"></div>
</body>
</html>

7. struts2 action 用瀏覽器打開變下載文件

struts.xml裡面設置有.ation、*、.do三種形式,好久沒搞java了,只記得有這種配置。

8. struts2如何實現word文檔的在線預覽功能

剛開始工作,交給了一個文件管理的功能,大體上是上傳,下載,在線預覽文件。其中的上傳下載都可以了,但是這個在線預覽確實很頭疼,不會做。經理說的那個意思好像是:不用直接下載,當你點擊查看的時候,會彈出一個word文檔,當然這個word文檔時不會被存放到本地上的。

9. struts2文件上傳和下載

1,上傳方法
(1),頁面form表單添加一個屬性為enctype="multipart/form-data" 和method="post"

(2),假設上傳預覽框為 <input type="file" name="myfile" />
(3),控制器接值的方法為
private File myfile; //要上傳的文件

private String myfileFileName; //要上傳文件名稱
private String myfileContentType; //要上傳文件類型
別忘了做set方法

(4), 接到值後可以保存到資料庫,也可以保存到硬碟,
>>1 保存到資料庫, 資料庫表中對應欄位要設置為BLOB類型

>>2 保存到硬碟代碼如下

InputStream in = new
FileInputStream( myfile);
OutputStream out = new
FileOutputStream( new File("d:\\upload\\"+myfileFileName));
byte[] buffer
= new byte[ in.available() ];
int ins =
in.read(buffer);//讀取位元組到buffer中
//ins == -1 時
。就已經是文件的結尾了
while ( ins !=
-1 ) {
out.write(buffer, 0, ins);//將緩存buffer中的數據寫到文件中
ins = in.read(buffer);
}

in.close();
out.flush();
out.close();
2,下載
(1), 把要下載的文件轉成一個輸入流InputStream
例如,利用hibernate取得一個文件,文件類型在實體類中為byte[]類型,

inputStream = new
ByteArrayInputStream(book.getMyfile);
其中inputStream 為全局變數,並且做setter和getter方法
(2),在控制器對應的action節點中(struts2配置文件中)添加一個result節點如下:

<result name="download" type="stream">
<param name="contentType">application/zip</param>

<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${myFileFileName}"</param>
<param name="bufferSize">1024</param>
</result>
這樣,就可以實現上傳和下載了.

10. struts2如何實現在線預覽word文檔的功能

網站下載個「office頑固卸載」把office

完全卸載掉,然後重啟電腦再安裝

一下就應該可以解決了~ 直接點擊

菜單欄上的關閉,而不是工具欄上的關閉

閱讀全文

與struts文件在線預覽相關的資料

熱點內容
武林盟主私密記事txt百度網盤 瀏覽:682
主角體內有空間成長的小說 瀏覽:395
歐洲四級電影有哪些 瀏覽:871
肥貓演的鬼片 瀏覽:231
怎麼取消桌面文件和d盤同步 瀏覽:663
asp編程技術有哪些 瀏覽:545
銷毀iphone 瀏覽:835
手機網路h是什麼意思 瀏覽:390
哪裡可以看高清無水印電影 瀏覽:204
被監控的美國電影 瀏覽:983
社死那天我一見鍾情了百度雲 瀏覽:982
如何顯示文件里有多少頁 瀏覽:795
全英文電影免費 瀏覽:346
ioscocoa4app 瀏覽:357
linux上下載文件 瀏覽:766
頭條下載的壓縮文件保存在哪裡 瀏覽:165
安卓系統自帶的編程軟體哪個好 瀏覽:615
很欲的耽美電影 瀏覽:736
一個光頭胖子叫爸爸的電影 瀏覽:514
命令行編譯驅動程序 瀏覽:426

友情鏈接