0

嗨,我在 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 上的 servlet

url = '<%= CCGestioneConstants.CONTEXT_PATH %>' + '/registered';  

实际上一切正常,如果用户名不存在,用户将被添加到数据库中,但在 servlet 中,命令:

request.getRequestDispatcher("html/pages/registered.jsp").forward(request, response);

不要在 jsp 上重定向,但我仍在注册页面上。

为什么?

4

1 回答 1

0

您的电话在 Ajax 中。您需要在 Ajax 响应上添加一个处理程序,并将浏览器重定向到您的页面 (registered.jps),使用 window.location = url。

servlet 中的转发可能会起作用,但是当您在 Ajax 中调用 servlet 时,它不会对您的网页内容产生任何影响。

于 2013-11-12T12:06:58.953 回答