java - 从 Java 中的表单获取值时出现问题 - Apache Tomcat

标签 java apache jakarta-ee tomcat7

嘿伙计们,我有这个表单,它被发送到一个烘焙机,它将获取在 Java 项目中输入表单字段的名称 - 我正在使用 Apache Tomcat v7.0 来运行它(servlet)对于某些人原因是,当我在烘焙文件中时,它告诉我表单文件中定义的方法不存在。

表单代码:

<form action="Band_roster" method="post">
  <table cellspacing="5" border="0">
    <tr>
      <td align="right">Band 1:</td>
      <td><input type="text" name=Band1.setbname()></td>
    </tr>
    <tr>
      <td align="right">Band 2:</td>
      <td><input type="text" name=Band2.setbname()></td>
    </tr>
    <tr>
      <td align="right">Band 3:</td>
      <td><input type="text" name=Band3.setbname()></td>
    </tr>
    <tr>
      <td align="right">Band 4:</td>
      <td><input type="text" name=Band4.setbname()></td>
    </tr>
    <tr>
      <td align="right">Band 5:</td>
      <td><input type="text" name=Band5.setbname()></td>
    </tr>
    <tr>
      <td align="right">Band 6:</td>
      <td><input type="text" name=Band6.setbname()></td>
    </tr>
    <tr>
      <td align="right">Band 7:</td>
      <td><input type="text" name=Band7.setbname()></td>
    </tr>
    <tr>
      <td align="right">Band 8:</td>
      <td><input type="text" name=Bandb.setbname()></td>
    </tr>

    <tr>
      <td></td>
      <td><br><input type="submit" value="Submit"></td>
    </tr>
  </table>
  </form>

烘焙机代码:

<table cellspacing="5" cellpadding="5" border="1">
        <tr>
            <td align="right">Band1:</td>
            <td><%= Band1.getBname() %></td>
        </tr>
        <tr>
            <td align="right">Band2:</td>
            <td><%= Band2.getBname() %></td>
        </tr>
        <tr>
            <td align="right">Band3:</td>
            <td><%= Band3.getBname() %></td>
        </tr>
        <tr>
            <td align="right">Band4:</td>
            <td><%= Band4.getBname() %></td>
        </tr>
        <tr>
            <td align="right">Band5:</td>
            <td><%= Band5.getBname() %></td>
        </tr>
        <tr>
            <td align="right">Band6:</td>
            <td><%= Band6.getBname() %></td>
        </tr>
        <tr>
            <td align="right">Band7:</td>
            <td><%= Band7.getBname() %></td>
        </tr>
        <tr>
            <td align="right">Band8:</td>
            <td><%= Band8.getBname() %></td>
        </tr>

    </table>

    <p>Ready to Rock</p>

    <form action="Band.jsp" method="post">
        <input type="submit" value="submit">
    </form>

烘焙文件是我遇到错误的文件 - Band8.getBname() 告诉我它无法解析,与 tr 中的每个 Band'number' 相同。

请告诉我这是否有意义,并感谢您的帮助!

最佳答案

因此,我假设您向我们展示的是来自两个不同 jsp 页面的源代码片段,并且第一个 jsp 页面呈现的 html 以某种方式发布到呈现第二个 jsp 页面的内容。

但是,您没有提及您是否正在使用某种 Web 框架、编写 servlet 或其他什么...也许您可以启发我们。

无论如何,您似乎缺少一些基本概念:

第一个 jsp 页面(带有表单)似乎不起作用。

大概,Band1、Band2 等对象是在第一个 jsp 页面的顶部定义的,但您没有显示它。

第一个 jsp 页面中输入字段的语法 <input type="text" name=Band1.setbname()>是不正确的。例如,假设 Band1 是页面中定义的对象,则输入字段应类似于: <input type="text" name="${Band1.bname}"> ,如果 Band1 有 getBname() 方法,则会将输入字段的值初始化为调用该方法的结果。但是,从您对“setbname”的使用来看,我猜测您希望它获取输入字段的值并使用它来设置 Band1 中的属性值。不幸的是,事实并非如此。所发生的情况是,表单字段中的值作为请求参数发送到第二页。

在第二个 jsp 页面中,假设 Band1 是在该页面中定义的,则可以使用正确的语法来输出 Band1.bname 的值。我猜不是的。您需要以某种方式将请求参数转换为 Band 的实例,或者 Band1 的任何类。

通常,人们不会 POST 到另一个 jsp 页面(尽管可以)。这类事情通常由 servlet 处理,或者更好的是由 Struts 或 Spring MVC 等 Web 框架中的 Controller 类处理。然后,servlet 或 Controller 通常会呈现 jsp 页面,并向其发送要引用的 Band 对象。

关于java - 从 Java 中的表单获取值时出现问题 - Apache Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13870533/

相关文章:

java - EJB 事务回滚异常

java - 执行 Kettle 转换

java - 如何检查响应是否为 xml 格式而不是 HTML?

java - 如何将整数数组传递给 MyBatis 中的 IN 子句

java - 通过使用 Hibernate 管理外键依赖关系来进行 CRUD 操作

python - 如何在 apache 下从 mod_python 写入日志?

java - 一种跳过Java子字符串中开始和结束字符索引的方法?

java - 从 oracle db 执行 java callout

java - 如何从 Sharepoint 服务器获取网站集对象

apache - 无法访问 RabbitMQ 管理插件