こんにちは、Eclipse の Web アプリケーションに簡単な登録フォームがあります。そして、重複したユーザー名を制御するためのこの小さなスクリプトを作成します。
<script type="text/javascript">
$(document).ready(function() {
$('#idBtnRegister').click(function(){
username = $('#idUsername').val();
CCService.findUsername(username,{
callback: function(find) {
if(find == true) {
$('#idUsername').popover({ html: true, content: 'username already exist', placement: 'right' });
$('#idUsername').popover('show');
}
else {
url = '<%= CCGestioneConstants.CONTEXT_PATH %>' + '/registered';
var params = {};
params["username"] = $('#idUsername').val();
params["name"] = $('#idName').val();
params["surname"] = $('#idSurname').val();
params["password"] = $('#idPassword').val();
params["email"] = $('#idEmail').val();
$.ajax({
type: 'POST',
data: params,
url: url,
async: false,
cache: false,
});
}
},
async: false
});
});
});
</script>
CCService.findUsername DWR 呼び出しです。
public boolean findUsername(String username) throws SQLException, ClassNotFoundException {
UserDao userDao = new UserDao();
boolean find = userDao.findUserByUsername(username);
return find;
}
URL は、/registerd にマップされたサーブレットを呼び出す必要があります
url = '<%= CCGestioneConstants.CONTEXT_PATH %>' + '/registered';
実際にはすべて機能します。ユーザー名がまだ存在しない場合、ユーザーはデータベースに追加されますが、サーブレットではコマンド:
request.getRequestDispatcher("html/pages/registered.jsp").forward(request, response);
jsp でリダイレクトしないでください。しかし、私はまだ登録ページにいます。
なぜ?