0

やあみんな私はJavaプロジェクトのフォームフィールドに入力された名前を取得するロースターに送信されるこのフォームを持っています-私はそれを実行するためにApacheTomcatv7.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のすべてのバンド「番号」と同じように、解決できないことを示しています。

これが理にかなっているかどうか教えてください。助けてくれてありがとう!

4

1 に答える 1

1

したがって、あなたが示したのは2つの異なるjspページからのソースコードのスニペットであり、最初のjspページによってレンダリングされたhtmlは、2番目のjspページをレンダリングするものに何らかの形で投稿されると思います。

ただし、ある種のWebフレームワークを使用しているのか、サーブレットを作成しているのか、それとも何をしているのかについては言及していません。

とにかく、あなたはいくつかの基本的な概念を見逃しているようです:

最初のjspページ(フォーム付き)は、機能するものではないようです。

おそらく、Band1、Band2などのオブジェクトは最初のjspページの上部に定義されていますが、それは表示されていません。

最初のjspページの入力フィールドの構文<input type="text" name=Band1.setbname()>が正しくありません。たとえば、Band1がページで定義されているオブジェクトであるとすると、入力フィールドは次のようになります<input type="text" name="${Band1.bname}">。これは、Band1にgetBname()メソッドがある場合、入力フィールドの値を呼び出した結果に初期化します。その方法。ただし、「setbname」の使用から、これが入力フィールドの値を取得し、それを使用してBand1のプロパティの値を設定することを期待していると思います。残念ながら、それはそれがどのように機能するかではありません。フォームフィールドの値がリクエストパラメータとして2ページ目に送信されます。

2番目のjspページには、Band1がそのページで定義されていると仮定して、Band1.bnameの値を出力するための正しい構文があります。そうではないと思います。どういうわけか、リクエストパラメータをBandのインスタンス、またはBand1のクラスに変換する必要があります。

通常、別のjspページにPOSTすることはありません(できますが)。この種のものは通常、サーブレット、さらにはStrutsやSpringMVCなどのWebフレームワークのControllerクラスによって処理されます。次に、サーブレットまたはコントローラは通常、jspページをレンダリングし、参照するBandオブジェクトを送信します。

于 2012-12-14T02:59:30.727 に答える