0

新しいポップアップウィンドウにpdfストリームを表示したいのですが、ストリームが空の場合、現在のページ(Edition.jsp)にエラーメッセージを書きたいです。

Edition.jsp ページ:

<s:form id="pdf" action="ExportPdf" theme="simple" target="pageEdition" >  
   ...
    <sj:menu name="typeEdition" cssClass="edition" list="listeEditions" />
</s:form>

struts.xml で:

<action name="ExportPdf" class="ExportPdfAction">
   <result name="success" type="stream">
       <param name="inputName">inputStreamPdf</param> 
       <param name="contentType">application/pdf</param> 
       <param name="contentDisposition">filename="myFile.pdf"</param> 
       <param name="bufferSize">2048</param>
    </result>
    <result name="error">/WEB-INF/web/Edition.jsp</result>          
</action>

javascript、メニュー項目の編集をクリックすると

$('.edition').bind('click', function(even, data) {
   window.open('', 'pageEdition', 'location=no, menubar=no, height=600, width=900' );
   $('#pdf').submit();        
   });

エラーを返すと、目的のページに移動したくありません。


はい、Ajax JQuery で試してみましたが、問題は display pdf です!

//  click on the menu item edition
$('.edition').bind('click', function(event, data) {
    $('#pdf').submit();       
}); 

$('#pdf').submit(function(event) {
    // stop form from submitting normally
    event.preventDefault();

    // post with parameters 
    var posting = $.post( $( this ).attr( 'action' ), $('#pdf').serialize());

    // wait results
    posting.done(function( data, event ) {
    if (data.substring(0,4) != '%PDF') {
       alert ("error");         
    } else {
       // the format pdf is recognize, but not display (the stream is in the url, but not in the content)
       window.open('data:application/pdf,'+ data, 'pageEdition', 'menubar=no, height=600, width=900' );
    }   
});

このソリューションを使用すると、ストリーム レスポンス (データ パラメータ) が正しく表示されません。ストリームは URL にありますが、コンテンツにはありません。私は試してみます:

window.document.write(data);

しかし、それはhtmlコンテンツです。
javascriptでpdfストリームを表示するにはどうすればよいですか?
ありがとう

4

0 に答える 0