尝试使用iText(PdfAction.createSubmitForm)保存PDF表单字段。在jsp上丢失现有的javascript

时间:2014-07-25 21:40:13

标签: java pdf-generation adobe itext

我正在尝试创建一个用户填写字段并保存数据的pdf。我创建了一个' save'使用iText在pdf上的按钮。我使用PdfAction.createSubmitForm来设置按钮的动作。虽然我在保存时获得pdf的formfield值,但由于此按钮,我在JSP上丢失了现有的javascript。我在保存按钮中使用PdfAction.SUBMIT_HTML_FORMAT。我在这里做错了什么?

由于

2 个答案:

答案 0 :(得分:0)

问题已经解决。如果我重定向servlet操作,则显示的JSP正常工作。

以下是代码

HttpServletResponse response ;
            response.setContentType("text/html");
            response.setContentLength(13);

            String url = new URL(request.getScheme(),request.getServerName(), request.getServerPort(),request.getRequestURI()).toExternalForm();

            String target = url+"?action="ServletAction";

            response.addHeader("Refresh", new StringBuilder(target.length() + 5)
                .append("0;url=").append(target).toString());

            ServletOutputStream out = response.getOutputStream();
            out.print("<html></html>");

答案 1 :(得分:0)

我已经阅读了你的答案,虽然它解决了你的问题(并澄清了最初的问题),但你正在以非常糟糕的方式解决问题。您正在向浏览器发送几乎为空的HTML文件<html></html>,并且您希望浏览器会尊重Refresh标头。这非常不专业

重定向是这样完成的:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
    String url = new URL(request.getScheme(),request.getServerName(), request.getServerPort(),request.getRequestURI()).toExternalForm();
    String target = url+"?action=ServletAction";
    response.sendRedirect(target);
}

如果您的代码段是doGet方法的一部分,请将doPost替换为doPost