从servlet打印,为什么这不起作用

时间:2009-05-08 03:40:39

标签: java html servlets printing

我想从servlet打印。我相信我的语法正确。但是我在Eclipse中收到了“删除这些令牌”的消息。

    PrintWriter out = response.getWriter(); 
    out.println("<html><head><title>Woohoo</title></head><body>\n" + 

            "<form id="report_form" name="report_form" method="post" action="AgReportServlet">\n"+
            "<table border="0" cellspacing="0" cellpadding="8">\n"+
                "<tr>\n"+
                "   <td><label>Start Date<br />\n"+
                "   <select name="start_date" id="start_date">\n"+
                "       <option value="2000">2000</option>\n" +
                "       <option value="2001">2001</option>\n" +
                "       <option value="2002">2002</option>\n" +
                "       <option value="2003">2003</option>\n" +
                "       <option value="2004">2004</option>\n" +
                "   </select> </label></td>\n"+
                "   <td>End Date<br />\n"+
                "   <select name="end_date" id="end_date">\n"+
                "       <option value="2000">2000</option>\n"+
                "       <option value="2001">2001</option>\n"+
                "       <option value="2002">2002</option>\n"+
                "       <option value="2003">2003</option>\n"+
                "       <option value="2004">2004</option>\n"+
                "   </select></td>\n"+
                "   <td><label>Agricultural Zone<br />\n"+
                "   <select name="ag_zone" id="ag_zone">\n"+
                "       <option value="1">Zone 1</option>\n"+
                "       <option value="2">Zone 2</option>\n"+
                "       <option value="3">Zone 3</option>\n"+
                "       <option value="4">Zone 4</option>\n"+
                "       <option value="5">Zone 5</option>\n"+
                "   </select> </label></td>\n"+
                "   <td><label>Locality<br />\n"+
                "   <select name="locality" id="locality">\n"+
                "       <option value="here">There</option>\n"+
                "       <option value="there">There</option>\n"+
                "   </select> </label></td>\n"+
                "   <td><label><br />\n"+
                "   <input type="submit" name="submit" id="submit" value="Submit" /> </label></td>\n"+
                "</tr>\n"+
        "   </table>\n"+
        "   </form>\n"+
        "</body>\n"+
        "</html>"
            );
    out.flush();
    out.close();

堆栈跟踪如下: java.lang.Error:未解决的编译问题:
    令牌上的语法错误,删除这些令牌
    令牌上的语法错误,删除这些令牌
    令牌上的语法错误,删除这些令牌     表达式的类型必须是数组类型,但它解析为String
    令牌“2000”上的语法错误,[预期
    表达式的类型必须是数组类型,但它解析为String
    令牌“2001”上的语法错误,[预期
    表达式的类型必须是数组类型,但它解析为String
    令牌“2002”上的语法错误,[预期
    表达式的类型必须是数组类型,但它解析为String
    令牌“2003”上的语法错误,[预期
    表达式的类型必须是数组类型,但它解析为String
    令牌“2004”上的语法错误,[预期
    令牌上的语法错误,删除这些令牌
    表达式的类型必须是数组类型,但它解析为String
    令牌“2000”上的语法错误,[预期
    表达式的类型必须是数组类型,但它解析为String
    令牌“2001”上的语法错误,[预期
    表达式的类型必须是数组类型,但它解析为String
    令牌“2002”上的语法错误,[预期
    表达式的类型必须是数组类型,但它解析为String
    令牌“2003”上的语法错误,[预期
    表达式的类型必须是数组类型,但它已解析为String

等。等

2 个答案:

答案 0 :(得分:2)

你在字符串中加上双引号,如:

"<form id="report_form"...

你需要逃脱它们:

"<form id=\"report_form\"...

或在HTML中使用单引号:

"<form id='report_form'...

答案 1 :(得分:0)

是的,这不是你想要做的。请改为Freemarker