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