2016-08-30 118 views
0

當我點擊按鈕時沒有任何反應。在JSF按鈕上點擊執行java方法點擊

<h:commandButton value="Generate PDF" type="button" 
     action="#{parseHtml12.createPdf}" /> 

此按鈕位於XHTML文件中,我要將其轉換爲pdf。 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中的內容是動態的,不檢索值。

如果我執行類時,值將被填充,這會給我想要的結果。

更新:點擊按鈕時,動態數據消失。如果我再次點擊發生像這樣: javax.el.PropertyNotFoundException: /data.xhtml @48,45 action="#{parseHtml12.createPdf}": Target Unreachable, identifier 'parseHtml12' resolved to null

+0

這似乎不是一個iText問題。在編寫自己的代碼時,使用Java編寫的iText代碼部分可以正常運行,因此您的問題在JSF中是孤立的。我建議你刪除iText標籤。 –

回答

1

我沒有足夠的評論意見。

嘗試在<h:form>標記內包裝您的commandButton,並將type="submit"添加到按鈕。

+0

謝謝。它幫助我開始按鈕,但當按鈕被點擊時,動態數據消失。如果我再次點擊發生像這樣:'javax.el.PropertyNotFoundException:/data.xhtml @ 48,45 action =「#{parseHtml12.createPdf}」:目標無法訪問,標識符'parseHtml12'解析爲空' – digo

+0

'createPdf ',方法不是屬性,再加上它有一個String參數,它應該是''{{parseHtml12.createPdf(文件名)}' –

+0

無關,試着處理'createPdf'方法中的2個異常,只是扔他們是不實際的。嘗試'FacesMessage'與'' –