0

フォームで構成される 2 つの jsp ページがあります。1 つは「signup.jsp」ページで、もう 1 つは「login.jsp」ページです。どちらのフォーム アクションも「Validate」サーブレットに送信されます。サーブレットはどのフォームが送信されたかをどのように判断するので、ユーザーが送信したフォームに対応して検証されます。

4

2 に答える 2

4

送信ボタンに一意の名前を付けます。

<form ...>
    ...
    <input type="submit" name="signup" value="Signup" />
</form>
<form ...>
    ...
    <input type="submit" name="login" value="Login" />
</form>

他のすべての入力要素と同様に、名前=値のペアもリクエスト パラメータとして送信されます。したがって、サーブレットで行う必要があるのは、

if (request.getParameter("signup") != null) {
    // Signup form is submitted.
}
else if (request.getParameter("login") != null) {
    // Login form is submitted.
}

具体的な問題とは関係ありませんが、このデザインはやや奇妙です。フォームごとに個別のサーブレットが必要です。「検証」サーブレットにあるコードは、両方のサーブレットでインポート/使用できるスタンドアロン クラスにリファクタリングする必要があります。

以下も参照してください。

于 2013-02-16T00:23:12.083 に答える
1

BalusCの回答の代替:

<form ...>
    ...
    <input type="submit" name="signup" value="signup" />
</form>

<form ...>
    ...
    <input type="submit" name="signup" value="login" />
</form>

Javaが「値渡し」であることを正しく理解していれば、サーブレットでスイッチ/ケースを使用してパラメーター値を確認できます。

String signup = request.getParameter("signup");
switch(signup){
  case "signup":
    // signup form is submitted
  break;
  case "login":
    // login form is submitted
  break;
}
于 2014-07-20T10:26:30.857 に答える