实训老师让我们自己ajax发送请求到Servlet进行增删改。
下面是我遇到的一些问题:
1、jsp页面循环遍历出Servlet传过来的数组
1
2
3
4
5
6
7
8
9
10
11
12
13<c:forEach var="emp" items="${emplist }"> <input type="hidden" value="${emp.empno }" id="empnoi"/> <tr> <td>${emp.ename }</td> <td>${emp.job }</td> <td>${emp.sal }</td> <td>${emp.hiredate }</td> <td> <span id="update" data-id='${emp.empno }'>修改</span> <span id="delete" data-id='${emp.empno }'>删除</span> </td> </tr> </c:forEach>
可是问题来了,页面显示不出来,我仔细排查,发现遍历是没问题的,又看头部才发现isELIgnored="false"忘掉了。
${}就不能用可定出不来啊。
2、修改信息时,我需要弹窗进行修改,那么问题来了。我怎么把当前这条数据传到弹窗里呢,不能把当前id放到后台再查询一次然后返回数据显示到弹窗里吧,影响性能啊
想了一下,简单除暴的通过$(this).parent().siblings().eq(0).text()的方法把数据取到赋值到弹窗里。依次进行;
最后我需要提交弹窗里form表单。
奇怪的是每次提交都提示ajax的方法错误:error
好嘛,又仔细看,url没问题,data:{}没问题,那么哪里出错?
想了一下,之前有过input[type="submit"]和input[type="button"]的差别影响ajax方法的问题,详情:http://blog.csdn.net/qq_34926773/article/details/77865348
我切换着用,发现不是这的问题。没办法我只有断点调试发现问题:404错误
url错误,为什么?和servlet的名字一样啊。我去找了几遍才发现问题:创建servlet时web.xml里没有此servlet的配置。
哎。好坑啊,我记得servlet创建时都是自动配置servlet的。
3、既然可以访问后台了,那么我想从后台传值回来怎么做?servlet又不像SSM框架那样return 值
没办法,百度呗,谁让基础不扎实。
找出答案:
PrintWriter out = response.getWriter();
out.println("返回值");
前台Ajax:
success: function(data){
alert(data);
}
值是可以读出来了,但是乱码了。。。。
懵逼。。。
仔细找答案:
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
配置编码格式。。。
终于正常了
心酸。基础不扎实就是这样,一个小问题就可以让你费很大的劲。加油吧
最后
以上就是朴素蛋挞最近收集整理的关于Ajax和Servlet做项目时遇到的问题的全部内容,更多相关Ajax和Servlet做项目时遇到内容请搜索靠谱客的其他文章。
发表评论 取消回复