2016-08-30 1 views
0

ボタンをクリックしても何も起こりません。JSFボタンでjavaメソッドを実行します。

このボタンは、私がpdfに変換したいXHTMLファイルです。 Javaクラスのコードここにある:

public class ParseHtml12 { 
    public static final String DEST = "C:\\Users\\User\\Desktop/report.pdf"; 
    public static final String HTML = "web/data.xhtml"; 

    public static void main(String[] args) throws IOException, DocumentException { 
     File file = new File(DEST); 
     file.getParentFile().mkdirs(); 
     new ParseHtml12().createPdf(DEST); 
    } 


    public void createPdf(String file) throws IOException, DocumentException { 

     Document document = new Document(); 

     PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file)); 
     writer.setInitialLeading(12); 

     document.open(); 

     XMLWorkerHelper.getInstance().parseXHtml(writer, document, 
       new FileInputStream(HTML)); 

     document.close(); 
    } 
} 

このコードは良いですが、唯一の問題は、ボタンのクリックでクラスを実行する方法です。 IDEでクラスを実行すると結果はわかりますが、問題はXHTMLのコンテンツが動的で値を取得しないということです。

値を入力するときにクラスを実行すると、これで目的の結果が得られます。

UPDATE:ボタンをクリックすると、動的データが表示されなくなります。もう一度クリックすると、次のようになります。 javax.el.PropertyNotFoundException: /data.xhtml @48,45 action="#{parseHtml12.createPdf}": Target Unreachable, identifier 'parseHtml12' resolved to null

+0

これはiTextの質問ではないようです。自分で書くと、JavaのコードのiText部分はIDEで実行すると問題ないので、問題はJSFで分離されます。 iTextタグを削除することをお勧めします。 –

答えて

1

コメントするにはポイントが足りません。

<h:form>タグ内にcommandButtonをラップして、type="submit"をボタンに追加してください。

+0

ありがとうございます。それは私がボタンを起動するのを助けましたが、ボタンがクリックされると動的データは消えます。もう一度クリックすると、次のようになります。 'javax.el.PropertyNotFoundException:/data.xhtml @ 48,45 action ="#{parseHtml12.createPdf} ":ターゲット到達不能、識別子 'parseHtml12'がnullに解決されました。 ' – digo

+0

' createPdf 'は、属性ではなく、Stringパラメータを持ち、'#{parseHtml12.createPdf(ファイル名)} ' –

+0

とは無関係に、' createPdf'メソッドで2つの例外を処理しようとします。それらを投げるだけでは実用的ではありません。 'FacesMessage'を' 'としてください –

関連する問題