在JSF按钮上单击执行java方法

时间:2016-08-30 19:06:26

标签: jsf jsf-2

当我点击按钮时没有任何反应。

 <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中的内容是动态的并且不检索值。

如果我在填写值时执行class,这将给我想要的结果。

更新:单击按钮时,动态数据消失。如果我再次点击就会发生这样的事情:  javax.el.PropertyNotFoundException: /data.xhtml @48,45 action="#{parseHtml12.createPdf}": Target Unreachable, identifier 'parseHtml12' resolved to null

1 个答案:

答案 0 :(得分:1)

我没有足够的评论意见。

尝试将commandButton包装在<h:form>标记内,并将type="submit"添加到按钮中。