概述
实训老师让我们自己ajax发送请求到Servlet进行增删改。
下面是我遇到的一些问题:
1、jsp页面循环遍历出Servlet传过来的数组
<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>
因为读取出来的数据删除和修改需要用ajax发送到后台处理,我就没有用a标签的href=xxx?id=?的方法,所以我把它的id放到data-id中,在通过jq的attr取出来用ajax发送到后台。
可是问题来了,页面显示不出来,我仔细排查,发现遍历是没问题的,又看头部才发现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做项目时遇到的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复