【问题标题】:Using html forms in servlet code not working在 servlet 代码中使用 html 表单不起作用
【发布时间】:2014-02-19 16:56:08
【问题描述】:

我正在尝试在我的 servlet 代码中像这样使用表单;

 out.println("<FORM ACTION=\""+ BooksBought+"\"method = \"POST\">\n" +
         "<INPUT TYPE=\"SUBMIT\"\n "+
             "       VALUE=\"Update Order\">\n" +
             "</FORM>\n");

但我不断收到诸如 BooksBought 无法解析为变量之类的错误。 BooksBought 是另一个独立工作的 servlet,所以我知道这就是问题所在。请帮忙。

web.xml

<servlet-mapping>
  <servlet>
      <servlet-name>BooksBought</servlet-name>
      <servlet-class>BooksBought</servlet-class>
  </servlet>
  <servlet-name>BooksBought</servlet-name>
  <url-pattern>BooksBought</url-pattern>
</servlet-mapping> 

【问题讨论】:

  • BooksBought 是否以相同的方法定义为变量?是全局变量吗?您可能需要发布更多代码。
  • "errors like BooksBought cannot be..." 你能发布完整的堆栈跟踪和周围的代码吗?你在哪里声明BooksBought
  • BooksBought 是一个 servlet。

标签: java html forms servlets


【解决方案1】:

如果 BooksBought 是一个 servlet,而不是一个变量,你应该这样做:

   out.println("<FORM ACTION=\"BooksBought\" method=\"POST\">");

您还需要在 " 和方法之间放置一个空格。您也可以使用单引号,这样您就不必转义引号。这样更容易阅读。

   out.println("<FORM ACTION='BooksBought' method='POST'>");

如果此表单的 servlet 比您要发布的那个更深,您需要添加一个 ../

   out.println("<FORM ACTION='../BooksBought' method='POST'>");

【讨论】:

    【解决方案2】:

    是的 - 它没有那么神奇。该操作需要是映射到 BooksBought servlet 的 URL。你是在战争中部署这些吗?你设置了 web.xml 吗?

    退房:

    What is url-pattern in web.xml and how to configure servlet

    http://docs.oracle.com/javaee/7/tutorial/doc/servlets.htm

    【讨论】:

    • 另外——所有酷孩子现在都在使用客户端模板,而不是在服务器上构建静态 HTML。如果您有兴趣,请查看 Handlebars、Mustache、Undescore 模板等。
    • 我正在开发 eclipse,并设置了一个 web.xml。我还尝试使用映射到 BooksBought servlet 的 URL,但没有任何效果。
    • 您要部署到哪个容器?你确定你的网址没有错吗?我可以查看您的 web.xml 的相应部分吗?
    • 如果要映射到路径,请确保在 URL 映射前放置 /。此外,您的 servlet 类应该是完全合格的。当您尝试启动或部署时,您是否在容器的日志文件中看到错误?
    • 如果您使用 URL 字符串作为操作参数,则不会出现该错误。请重试。
    猜你喜欢
    • 2013-12-15
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2012-12-09
    • 2011-05-26
    • 1970-01-01
    相关资源
    最近更新 更多