ajax、表单、重定向、textarea

来源:互联网 发布:罗辑思维 人工智能 编辑:程序博客网 时间:2024/06/10 21:59

最近在做一个系统,就是一些提交、查看等的简单业务操作,咋子开发(CTRL+c、CTRL+v)的的过程中遇到了一些小问题,在寻求过同事和百度后感觉应该记录一下啊,故作此笔记。

、编辑功能:页面将id作为条件传过去,并将结果传回到其他页面并显示。

第一、前台使用ajax,结果:失败。

ajax代码如下:

$.ajax({ url:'pages/zx_social/articleInfo.do', dataType:'json', type:'post', data:{article_id:article_id}, success:function(response){ console.log(response); } });  
(1)后台controller代码(ajax提交,使用重定向返回字符串):

@RequestMapping(value = "articleInfo.do")public void getArticleInfo(HttpServletRequest request, HttpServletResponse response)throws Exception{IMap params = new IMap(request);infoDeptSvc.uptSubmittedArticleStatus(params);QueryResult queryBeans = this.dataQueryService.queryBeans("infoDept.infoDept", false, null, null, false, null, null,params);request.setAttribute("articleInfoById",queryBeans.getDataList());return "work/pendArticle";}
在谷歌浏览器的控制台查看:

(2)后台controller代码(ajax提交,未使用重定向):

@RequestMapping(value = "articleInfo.do")public String getArticleInfo(HttpServletRequest request, HttpServletResponse response)throws Exception{IMap params = new IMap(request);infoDeptSvc.uptSubmittedArticleStatus(params);QueryResult queryBeans = this.dataQueryService.queryBeans("infoDept.infoDept", false, null, null, false, null, null,params);request.setAttribute("articleInfoById",queryBeans.getDataList());IMap resultMap = new IMap();resultMap.put("success", true);resultMap.put("articleInfoById", queryBeans.getDataList());writerJsonData(response, resultMap);}

在谷歌浏览器的控制台查看:


********************下面是对ajax两种情况的总结**************************************

返回字符串(要显示数据的页面路径),可以看到是一个页面,而返回的是json的时候则是数据。

个人感觉:ajax是异步提交,在success的时候可以选择打开其他的页面,所以可以把返回的数据存起来,跳到其他页面在拿出来显示。

request.setAttribute()的使用,这是request对象的用法,在同一个请求中有效(具体关于jsp九大内置对象本人还处于深造阶段,就不多说了。也希望有人来补充)

********************ajax两种情况的总结结束**************************************

第二、前台使用自定义表单

代码如下

var myform = document.createElement("form");document.body.appendChild(myform);myform.action = 'pages/zx_social/articleInfo.do';myform.method="post";var article_id_input = document.createElement("input");  myform.appendChild(article_id_input);article_id_input.type="text";  article_id_input.name="article_id"; article_id_input.value = article_id;myform.submit();
后台controller代码如下

@RequestMapping(value = "articleInfo.do")public void getArticleInfo(HttpServletRequest request, HttpServletResponse response)throws Exception{IMap params = new IMap(request);infoDeptSvc.uptSubmittedArticleStatus(params);QueryResult queryBeans = this.dataQueryService.queryBeans("infoDept.infoDept", false, null, null, false, null, null,params);request.setAttribute("articleInfoById",queryBeans.getDataList());return "work/pendArticle";}

在谷歌的控制台查看



可以看到返回的是显示数据页面的html代码

二、关于textarea的取值(一个小例子,看的简单明了)

代码如下:

<body><textarea id="demo">TEXT</textarea><button onclick="get()">获取</button></body><script type="text/javascript" src="js/jquery.min.js" ></script><script>function get(){console.log("text:"+$("#demo").text()+"--"+"val:"+$("#demo").val()+"--"+"html:"+$("#demo").html());}</script>
结果显示:

********************文本域取值总结*****************************
这个双标签之间的内容,使用text()和html()取值的时候,是无法取到修改后的值的,使用val()是可以的

********************文本域取值总结结束*****************************

谢谢阅读,如有不对之处请评论指出,期待与大家共同进步!

原创粉丝点击