Json传值前台接收不到

sevlet中的代码如下,其中base_cn等等都是通过数据库Dao方法查询出来的整型变量,然后转换为json格式字符串,传回前台和页面上的数字比较。

        int base_rn = new RadioDao().getRadioNumber(base);
                int base_cn = new CheckBoxDao().getCheckBoxNumber(base);
                int base_jn = new JudgeDao().getJudgeNumber(base);
                int base_bn = new BlankDao().getBlankNumber(base);

                response.setContentType("application/json; charset=utf-8");
                String jsonStr = "{\"base_rn\":base_rn,\"base_cn\":base_cn,\"base_jn\":base_jn,\"base_bn\":base_bn}";
                PrintWriter out = null;
                try {
                    out = response.getWriter();
                    out.write(jsonStr);
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    if (out != null) {
                        out.close();
                    }
                }

前台的ajax如下:

 $.ajax({
        url : "servlet/GetPaperServlet",
        type : "POST",
        data : {
            "account" : account.val(),
            "true_name" : true_name.val(),
            "title" : title.val(),
            "base" : base.val(),
            "difficult" : difficult.val(),
            "time" : time.val(),
            "radio_number" : radio_number.val(),
            "checkbox_number" : checkbox_number.val(),
            "judge_number" : judge_number.val(),
            "blank_number" : blank_number.val(),
            "radio_score" : radio_score.val(),
            "checkbox_score" : checkbox_score.val(),
            "judge_score" : judge_score.val(),
            "blank_score" : blank_score.val(),
            "sum_score" : sum_score.val()
        },
            dataType : "json",
            success : function(jsonStr) {
                alert("comming");
                alert(jsonStr);
                if(jsonStr.base_rn<radio_number){
                    alert("题库中单选题数量不足,请减少题量!");
                    return false;
                }else{
                    alert("dd");
                }
            },
            error : function(er) {
                alert(er.message);
            }
        });

执行后,页面直接弹出undefined的警示框,请问大神正确的做法是什么?才能正确的实现相应的功能!

4个回答

说明执行到error回调,er是xhr对象,没有message属性,获取服务器返回内容用responseText属性

er.message
==>
er.responseText

steve_yanrun
Ray-Yan 感谢大家!
3 年多之前 回复
steve_yanrun
Ray-Yan 解决了,正确的拼接方法:String jsonStr = "{\"base_rn\":" + "\"" + base_rn + "\",\"base_cn\":" + "\"" + base_cn + "\",\"base_jn\":" + "\"" + base_jn + "\",\"base_bn\":" + "\"" + base_bn + "\"}";
3 年多之前 回复
showbo
支付宝加好友偷能量挖 回复qq532330913: 是要加上变量的值,而不是变量名称,否则客户端得到你变量名称,并不是变量值了。而你客户端没有声明对应的js变量就会报错了
3 年多之前 回复
qq532330913
ODSTErik 回复Run_er: jsonstr是string,没转成json?
3 年多之前 回复
showbo
支付宝加好友偷能量挖 回复Run_er: json有问题。。怎么回传变量名了,应该是串接值:===》String jsonStr = "{\"base_rn\":" + base_rn + ",\"base_cn\":" + base_cn + ",\"base_jn\":" + base_jn + ",\"base_bn\":" + base_bn + "}";
3 年多之前 回复
steve_yanrun
Ray-Yan 返回的是{"base_rn":base_rn,"base_cn":base_cn,"base_jn":base_jn,"base_bn":base_bn},请问应该怎么解决呢
3 年多之前 回复
 String jsonStr = "{\"base_rn\":"+base_rn+",\"base_cn\":"+base_cn+",\"base_jn\":"+base_jn+",\"base_bn\":"+base_bn+"}";
steve_yanrun
Ray-Yan 还是undefined
3 年多之前 回复

不是大神,你先看看后台有输出数据没
f12也看看

首先确定进入java了吗?或者把dataType : "json" 换成dataType : "text"试试吧

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
后台用一个方法怎么将多个json传到前台
String json=JSONArray.fromObject(list).toString(); String json1=JSONArray.fromObject(list1).toString(); out.write(json); out.write(json1); 前台使用ajax接收,单独一个可以接收,两个接收不到,直接就进不去成功回调的方法里面。
Struts1中map转换成json传到前台时取不到值——求指点!
## 后台报这个: - Property 'servlet' has no read method. SKIPPED - Property 'servletFor' has no read method. SKIPPED - Property 'servlet' has no read method. SKIPPED - Property 'servletFor' has no read method. SKIPPED - Property 'servlet' has no read method. SKIPPED - Property 'servletFor' has no read method. SKIPPED - Property 'servlet' has no read method. SKIPPED - Property 'servletFor' has no read method. SKIPPED - Property 'servlet' has no read method. SKIPPED - Property 'servletFor' has no read method. SKIPPED - Property 'servlet' has no read method. SKIPPED - Property 'servletFor' has no read method. SKIPPED - Property 'servlet' has no read method. SKIPPED - Property 'servletFor' has no read method. SKIPPED ## Java代码 : HttpSession session=request.getSession(); String logincode= ""; if(this.exportProvider==null){ this.exportProvider=new ExportProviderImpl(); } if (request.getSession().getAttribute("loginCode")!=null) { logincode=request.getSession().getAttribute("loginCode").toString(); } try { response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode("财务批量数据", "UTF-8") + ".xls"); response.setContentType("application/vnd.ms-excel"); HashMap maps=new HashMap(); if (!"86".equals(logincode)) { maps.put("logincode", logincode); } Map m=this.exportProvider.getJigouYear(); List l1=(List)m.get("年"); List l2=(List)m.get("机构"); JSONObject jo=JSONObject.fromObject(m); response.getWriter().print(jo); response.getWriter().flush(); response.getWriter().close(); } catch (Exception e) { e.printStackTrace(); } return null; ## 前台 : $.ajax({ type: "POST", url: "../main/exportexclelist2.action", //json格式接收数据 dataType: "json", success: function (data) { alert(data[i]); } }); } ## Struts配置: <action path="/main/exportexclelist2" scope="request" type="com.mstr.action.admin.ExportExcleAction2"> </action>
servlet传的json,前台接收不到
![图片说明](https://img-ask.csdn.net/upload/201606/12/1465689139_483258.png) 这是servlet,但是前台ajax始终执行error ![图片说明](https://img-ask.csdn.net/upload/201606/12/1465689202_909153.png) js代码 ![](http://img.bbs.csdn.net/upload/201606/11/1465655845_849976.png) 按照一楼改了 路径,又报错了 严重: Allocate exception for servlet /admin/AdItemServlet java.lang.ClassNotFoundException: com.netshop.servlet.AdItemServlet at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:518) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:499) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1102) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:828) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)
前台接收不到后台返回的json数据,前台显示object!求指点
![图片说明](https://img-ask.csdn.net/upload/201612/26/1482715144_679830.png) 用console.log(data);浏览器的F12的控制台能显示出来数据,alert();输出就是object。 ![图片说明](https://img-ask.csdn.net/upload/201612/26/1482715450_512681.png) 这是后台的代码!!!![图片说明](https://img-ask.csdn.net/upload/201612/26/1482715484_546884.png)这是页面的。
PHP+VUE,后台数据传到前台为什么不需要转换成JSON对象?
后台json_encode编译了一个数组, ``` $this->assign('data',json_encode($res['data'])); ``` 前台vue接收的时候, ![图片说明](https://img-ask.csdn.net/upload/201812/29/1546055176_283524.png) 这样会报错: ``` Uncaught SyntaxError: Unexpected token in JSON at position 623 ``` 但我换成php的: ![图片说明](https://img-ask.csdn.net/upload/201812/29/1546055541_241176.png) 这里就可以输出了: ![图片说明](https://img-ask.csdn.net/upload/201812/29/1546055605_847085.png) 为什么不需要转换成JSON就能直接是JSON对象?
springmvc后台如何接收ajax传的json格式的数据,以及json数据采用哪种方式传到后台
我现在遇到一个难题,以前,我用ajax传输数据到后台,后台用springmvc接收,成功了,但是,那个时候,我用的ajax的data部分是{"dcCode":dcCode,"itemNo":itemNo...},这样,我是一个参数,一个参数输入的,虽然慢,但是,还是成功地传输了。现在,我遇到的问题是,很多的参数,需要用遍历的方法来传参,我用jsonstr拼接json字符串的方法,拼出了以下的json格式,{"dcCode":"22","itemNo":"3456",...,"sectionName":"食品课"},....,可能有几百条这样的{}, 然后,我创建了一个数组var values=new Array, 用push把这些jsonstr都放进去,最后,我用ajax的dataType:json,post方法把这些数据传到后台,可是,后台是springmvc,@RequestBody(value="/save",method="post"), 可是,当我用String[] values来接收传过来的json参数的时候,却总是null,不知道到底是怎么回事儿,请教大家,都是用什么样的方法来处理这样传输多条json数据到后台的?如果我的思路是对的,能否把这个代码正确的告诉我?如果有更好的方法,请回答。非常感谢。 为了更好的说明问题,我把代码贴出来,如下 ``` function submit(){ debugger; var n=$("#countnumber").text(); var i=0; for(var a=0;a<n;a++){ var saveData=new Array(); var arr1=$('.item p').find('input:text'); var arr2=$('.item p').find('input:checkbox'); for(i=0;i<arr1.length;i++){ saveData.push((arr1).eq(i).val()); }; for(var j=0;j<arr2.length;j++){ saveData.push((arr2).eq(j).val()); }; }; function User(userId,userName,userPwd,memo,addDate,modifyDate,addUserId){ this.userId=saveData[1]; this.userName=saveData[2]; this.userPwd=saveData[3]; this.memo=saveData[4]; this.addDate=saveData[5]; this.modifyDate=saveData[6]; this.addUserId=saveData[7]; }; var user=new User(); var users=new Array(); users.push(user); $.ajax({ type: "post",//数据发送的方式(post 或者 get) url: "insert.do",//要发送的后台地址 data: {"user":JSON.stringify(users)}, dataType: "text",//后台处理后返回的数据格式 success:function (data){ alert(jQuery.parseJSON(data).msg); } }); } ``` 以上是前台的,接下去是后台的 ``` @ResponseBody @RequestMapping(value = "/insert.do", method = RequestMethod.POST) public Map insertUsers(HttpServletRequest request, @RequestBody String users) throws Exception{ users=URLDecoder.decode(users, "utf-8"); ObjectMapper mapper = new ObjectMapper(); //这里用了jackson,自己看看代码,很简洁的 JavaType javaType=mapper.getTypeFactory().constructParametricType(List.class,User.class); List<User> list = mapper.readValue(users, javaType); String msg=userService.insertUsers(list); Map map = new HashMap(); map.put("msg", msg); return map; } ``` 然后,后台的效果截图如下 ![图片说明](https://img-ask.csdn.net/upload/201612/18/1482061394_446729.png) 传到后台的Controller的,数据显示如下 ![图片说明](https://img-ask.csdn.net/upload/201612/18/1482061427_169271.png) 然后,进一步调试,出现错误如下 ![图片说明](https://img-ask.csdn.net/upload/201612/18/1482061332_952640.png) 请问,这个错误到底是什么原因造成的。是500错误。请高手帮助啊!
ztree中json类型数据如何在前台显示?
![图片说明](https://img-ask.csdn.net/upload/201503/05/1425541338_353520.png) 后台从数据库中获取到相应数据,存储到list,然后将list转换为json类型,返回到前台,通过ajax接收 ![图片说明](https://img-ask.csdn.net/upload/201503/05/1425541454_227826.png) 前台代码如上所示,不显示树形结构,请问是哪里出现了问题。
json接收不到,求大神指点明津
$.ajax({ url:"<%=request.getContextPath()%>/login_update.action", type:"post", data:{ id:id, name:name, email:email }, dataType:"json", success:function(obj){ if(obj){ alert("修改成功!"); location.href = "<%=request.getContextPath()%>/login_toList.action; } else{ alert("修改失败!"); } } }) 前台ajax 后台接收public String update() throws SQLException { //通过ID找对象 UserInfo userInfo = UserInfoDataProvider.getInstance().getUserInfoById(id); System.out.println("==============================================================="+userInfo.getName()); //更新 UserInfoDataProvider.getInstance().updateUserInfo(userInfo); HttpServletResponse response = ServletActionContext.getResponse(); JSONObject json = JSONObject.fromObject(userInfo); try { response.getWriter().write(json.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } ,接收到的name不是我要更新的,还是原来的,我的那个json数组写的是否正确?
json数据娶不到值。。大神指教
前台页面<form id="" method="post" accept-charset="utf-8"> <ul class="form"> <li> <div class="fc"> <input name="id" type="hidden" id="id"/> </div> </li> <li> <label class="label">用户名:<span>*</span></label> <div class="fc"> <input name="name" type="text" maxlength="40" id="name" value="${u.name}" /> <span class="tips">最多40个字符</span> </div> </li> <li> <label class="label">邮箱:<span>*</span></label> <div class="fc"> <input name="email" type="text" maxlength="16" id="email" value="${u.email}" /> <span class="tips">最多16个字符</span> </div> <script type="text/javascript"> function Preservation(){ alert("点击保存"); var name = $("#name").val(); alert("----用户信息---"+name); var email = $("#email").val(); alert("---用户邮箱----"+email); var id = ${u.id} alert("---用户ID----"+id); $.ajax({ url:"<%=request.getContextPath()%>/login_update.action", type:"post", data:{ "id":id, "name":name, "email":email }, dataType:"json", success:function(obj){ if(obj){ alert("修改成功!"); location.href = "<%=request.getContextPath()%>/login_toMain.action; } else{ alert("修改失败!"); } } }) } </script> 后台接收不到值,更新不了数据,/** * 修改action * @return * @throws IOException * @throws SQLException */ public String update() throws SQLException { //通过ID找对象 UserInfo userInfo = UserInfoDataProvider.getInstance().getUserInfoById(id); System.out.println("============"+userInfo.getName()); System.out.println("----------------"+userInfo.getId()); //更新 UserInfoDataProvider.getInstance().updateUserInfo(userInfo); HttpServletResponse response = ServletActionContext.getResponse(); JSONObject json = JSONObject.fromObject(userInfo); try { response.getWriter().write(json.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null;
前台传来json串,其中有数组,怎么去拿到这个数组
![图片说明](https://img-ask.csdn.net/upload/201812/25/1545725140_694519.png) # 后台是用request接收的 ![图片说明](https://img-ask.csdn.net/upload/201812/25/1545725271_176537.png) # 我的思路是用string接收这个字符串,再用json解析,转成list # 但是不知道怎么实现 ``` String ryxxs = request.getParameter("ruxxs"); ``` # 还有就是这句话能接收到传来的数组字符串吗
Json数据未被接收的问题
写了一个购买的功能模块,但是前台接收不到数据? 后台代码如下 @ResponseBody @RequestMapping(value = "/buy",method= RequestMethod.POST,produces = MediaType.JSON) public JsonResult api_buy(HttpSession httpSession, @RequestParam("id") Long product_id) { System.out.println("Class BuyApiController Method api_buy"); System.out.println("[product_id]:" + product_id); //session System.out.println("[session.id]:" + httpSession.getId()); UserVO userVO = (UserVO) httpSession.getAttribute("user"); JsonResult jsonResult = new JsonResult(); if(product_id == null) { //请求参数有错误 http status code is 400 jsonResult.setCode("400"); jsonResult.setMessage("购买失败"); jsonResult.setResult(false); } else { if(userVO == null) { //401 Unauthorized当前请求需要验证 jsonResult.setCode("401"); jsonResult.setMessage("购买失败"); jsonResult.setResult(false); } else if(userVO.getUsertype() == 0) { //buy try { this.transactionServiceImpl.buy(userVO, product_id); jsonResult.setCode("200"); jsonResult.setMessage("购买成功"); jsonResult.setResult(true); } catch (Exception e) { System.out.println("[Exception]:" + e.toString()); jsonResult.setCode("400"); jsonResult.setMessage("购买失败"); jsonResult.setResult(false); } } else if(userVO.getUsertype() == 1) { //403 Forbidden,当卖家点击进入购买时,则发生没有权限,导致操作拒绝 jsonResult.setCode("403"); jsonResult.setMessage("购买失败"); jsonResult.setResult(false); } else { //403 Forbidden未知身份发生购买,拒绝 jsonResult.setCode("403"); jsonResult.setMessage("购买失败"); jsonResult.setResult(false); } } return jsonResult; 前端ftl代码: <div class="g-doc" id="settleAccount"> <div class="m-tab m-tab-fw m-tab-simple f-cb" > <h2>已添加到购物车的内容</h2> </div> <table id="newTable" class="m-table m-table-row n-table g-b3"> </table> <div id="act-btn"><button class="u-btn u-btn-primary" id="back">退出</button> <button class="u-btn u-btn-primary" id="Account">购买</button></div> </div> <#include "/include/footer.ftl"> <script type="text/javascript" src="${request.contextPath}/js/global.js"></script> <script type="text/javascript" src="${request.contextPath}/js/settleAccount.js"></script> </body> </html> ![图片说明](https://img-ask.csdn.net/upload/201704/21/1492704132_359134.png) ![图片说明](https://img-ask.csdn.net/upload/201704/21/1492704152_387551.png)
SPRING3MVC接收JSON参数的问题 JSON解析为空
我想把前台页面里一个JSON结构的数据传到controller,尝试了数十次,由map到list到string都无法识别。 JSON的数据结构如下[code="java"]{"info":{"templateName":$("#templateName").val(),"templateNo":"tmp156464"}}[/code] 调用方式是通过jquery的ajax调用spring后台,[code="java"]$("#btSaveTemplate").click(function() { // alert($("#templateName").val()); var data = {"info":{"templateName":$("#templateName").val(),"templateNo":"tmp156464"}}; var data2 = {"templateName":$("#templateName").val()}; $.ajax({ type: "get",//使用get/post方法访问后台 dataType: "json",//返回json格式的数据 url: "lotty/add",//要访问的后台地址 data: data, success: function(msg){//msg为返回的数据,在这里做数据绑定 if(msg == '1'){ alert('操作成功'); location.reload(); } }, error: function(jqXHR, textStatus, errorThrown) { alert("error:" + textStatus + " exception:" + errorThrown); } });[/code] 后台spring确实收到了请求,并且执行了相应的方法,如下: [code="java"]@ResponseBody @RequestMapping(value="/add", method=RequestMethod.GET) public String doAdd([color=red][b]String info[/b][/color],Model model) throws Exception;[/code] 红色粗体的地方,用String接收是null,改用List和HashMap都不行,后来在SPRING的JAR包中,翻到一个MappingJacksonJsonView,尝试了下,还是空值。之后,我在方法里加了HttpServletRequest参数,郁闷的是:request里面的parameter部分为空 我想可能是SPRING注入处理JSON类的地方出错了,但是这个也不太可能。因为我传最基本的纯key-value结构的JSON数据,后台能成功捕获到(我的做法比较笨,前台有多少个key,controller方法里有多少个对应参数的那种) 这是我SPRING的相关配置:[code="java"]<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>[/code] 然后注入:[code="java"]<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref local="mappingJacksonHttpMessageConverter"/> </list> </property> </bean>[/code] 到此,实在不知道其他的解决方法了。 我的想法是,在实际应用中如果做批量插入的话,可以一次提交一个大的JSON数据,在后台里解析成JSONObject对象,再逐步取值。试了大半天,没有结果,上来问问大家,SPRING3里面JSON做参数的一些经验。
ajax获取后台json数据,其中精度缺失问题
我后台查询表头、表体、集装箱数据,一起放到map中传到前台,前台用json格式接收 ,但是其中表头中一个bigdecimal数据,自动四舍五入导致与输入数据不符![![图片说明](https://img-ask.csdn.net/upload/201711/09/1510222993_587736.png)图片说明](https://img-ask.csdn.net/upload/201711/09/1510222986_172616.png) 我试过把实体都改成String然后插入到map再传,不行。也试过直接把map转成String传到前端,但是前端纯文本接收数据后头不能分辨要插入哪个表单中
ajax传递的数据类型是json,那么值可以是二维数组吗?
我把一个二维数组当作数据放到ajax中的data:里面,后台却没接收到,不知道是什么原因 另外,怎么在chorme查看前台提交的信息?
springmvc的controller接收json数据失败
报错415,贴代码 ![图片说明](https://img-ask.csdn.net/upload/201707/05/1499239492_703626.png) springmvc配置 ![图片说明](https://img-ask.csdn.net/upload/201707/05/1499239510_299772.png) 前台代码 ![图片说明](https://img-ask.csdn.net/upload/201707/05/1499239523_957014.png) 后台controller代码 ![图片说明](https://img-ask.csdn.net/upload/201707/05/1499239549_99271.png) 实体类 ![图片说明](https://img-ask.csdn.net/upload/201707/05/1499239561_86251.png) 使用的jar包 上网查过使用了很多方法都不行,根本进不去controller,去掉@RequesBody能进controller但是数据就接收不到了。项目需求是要接收实体类集合的,这个这是用来测试的新建了一个实体类,为了方便就定义了三个String类型的属性。
Spring MVC WEB工程中前后台post传值事该不该用@RequestBody?
最近在做一个项目,BS架构用的SpringMVC,在做前后台交互时用post将前台的数据发送到后台,对action里面的@RequestBody有点迷糊,求教各位大神。 ``` @RequestMapping(value = "/something", method = RequestMethod.POST) public void handle(@RequestBody User user, Writer writer) throws IOException { writer.write(body); } ``` 这样用AJAX提交时必须是下面这种才能成功 ``` var user={'name':name,'passwd':passwd} $.ajax({ url : "http://localhost:8080/something", type : "POST", contentType: "application/json", data : JSON.stringify(user), dataType : "json", success : function(result) { }, error:function(msg){ } }); ``` 如果后台action里面取掉@RequestBody,就像下面这样 ``` @RequestMapping(value = "/something", method = RequestMethod.POST) public void handle( User user, Writer writer) throws IOException { writer.write(body); } ``` 前台post数据的时候直接这样就行了 ``` var user={'name':name,'passwd':passwd} $.ajax({ url : "http://localhost:8080/something", type : "POST", data : user, success : function(result) { }, error:function(msg){ } }); ``` 这样就可以收到前台传过来的值,但是按照前面的就不行了。 这个里面@RequestBody到底有什么作用,我的本意是后台直接接收一个User对象,如果按照第一种方法,感觉像是我前台先创建一个User对象,然后把它转成了JSON串再post到后台,然后通过@RequestBody再将JSON串转换成User对象,这感觉有点多此一举。而第二种方法感觉就是直接把对象传到后台的。那么这里@RequestBody的作用是什么。感觉第二种更加的方便,可是我看了一些人说的和一些项目中例子,用的第一种的比较多,这是为什么,百思不得其解?
ajax在前台传值,参数是Timestamp类型,传到action报错
javascript代码 var plantime = $("#beginTime").val(); $.ajax({ url : '<%=basePath%>AddEvent', type : 'post', data : {plantime:plantime}, datatype : 'json', success : function() {alert(1);} }); 页面代码: <input id="beginTime" type="text" onclick="WdatePicker({dateFmt:'yyyy-MM-dd'})" > action代码: private Timestamp plantime; public Timestamp getPlantime() { return plantime; } public void setPlantime(Timestamp plantime) { this.plantime = plantime; } 有时会报错: 报错内容是接收过来的参数plantime不能转成timestamp类型,应该是string类型,我在本地测试都是正常的,更新到服务器上面不同浏览器就会有不同的结果,IE9就会出现这个问题。
json ssh ztree 无数据返回到页面
``` package com.action; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.query.Query; import org.springframework.beans.factory.annotation.Autowired; import com.alibaba.fastjson.JSON; import com.base.BaseService; import com.entity.Administrator; import com.entity.PowerEntity; import com.instrument.Parameter; public class IndexAction { @Autowired BaseService baseservice; @Autowired SessionFactory sessionFactory; List<String> pnamelist = new ArrayList<String>(); List<ZtreeJS> ztreelist = null; @Action(value = "index", results = { @Result(name = "success", location = "/WEB-INF/jsp/index.jsp"), @Result(name = "defeated", location = "/login.jsp") }) // 登录的方法 public String index() { HttpServletRequest request = ServletActionContext.getRequest(); Parameter.CoustomParameter(Administrator.class, request); String hql = "from admin where account=? and apassword=? "; Session session = sessionFactory.openSession(); Query<Administrator> query = session.createQuery(hql); query.setParameter(0, request.getParameter("username")); query.setParameter(1, request.getParameter("password")); List<Administrator> adminlist = query.list(); if (adminlist.size() > 0) { System.err.println("登录成功"); session.close(); for (Administrator administrator : adminlist) { qureyPostId(administrator.getAid()); } return "success"; } else { System.err.println("登录失败"); session.close(); return "defeated"; } } public void qureyPostId(int uid) { List<Integer> pidlist = new ArrayList(); Session session = sessionFactory.openSession(); Query<Object[]> query = session.createQuery("select r.rid from role r join r.listadmin u where u.aid=" + uid); List<Object[]> userlist = query.list(); for (Object ob : userlist) { pidlist.add((Integer) ob); session.close(); } qureyjuriId(pidlist); session.close(); } public void qureyjuriId(List<Integer> pidlist) { List<Integer> powerlist = new ArrayList(); Session session = sessionFactory.openSession(); int pidlsitsize = pidlist.size() - 1; Query<Object[]> query = session.createSQLQuery("select pid from role_power p where rid=" + pidlist.get(pidlsitsize)); List<Object[]> userlist = query.list(); for (Object ob : userlist) { powerlist.add((Integer) ob); session.close(); } qureyjuriName(powerlist); session.close(); } public void qureyjuriName(List<Integer> jidlist) { pnamelist = new ArrayList(); Session session = sessionFactory.openSession(); for (Integer integer : jidlist) { Query<PowerEntity> query = session.createQuery("from power p where p.pid=" + integer); List<PowerEntity> userlist = query.list(); for (PowerEntity ob : userlist) { pnamelist.add(ob.getPname()); } } for (String integer : pnamelist) { System.out.println(integer); } session.close(); } @Action(value = "ztree") public void ztree() { HttpServletResponse response = ServletActionContext.getResponse(); List<ZtreeJS> ztreelist = new ArrayList<ZtreeJS>(); for (String string : pnamelist) { ZtreeJS z = new ZtreeJS(); z.setName(string); ztreelist.add(z); } String data = JSON.toJSONString(ztreelist); try { response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); out.write(data); out.flush(); out.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ``` ``` 后台查询有数据,前台接收不了, ```
php接受axios传过来的数组,join分隔后添加进数据库,只有数字才可以添加成功,而中文不行,求解决
前台数据获得的是数组,我将数组分隔成字符串添加到mysql数据库中只能添加数字 如果数据是中文或字母就添加不进去,编码格式是Utf8 这是前端代码片 ``` onSubmit(formName) { this.$refs[formName].validate(async valid => { if (valid) { alert('提交成功!') const res = await this.$http.post('php/tj.php', { t1: this.form.domains }) console.log(res) console.log(this.form.domains) } else { console.log('提交失败!') return false } }) } ``` 这是php文件,$sql插入数字可以,但中文不行.英文也不行 ``` <?php header("Content-type:text/html;charset=utf-8"); //接收数据,JSON格式转换 $data = json_decode(file_get_contents("php://input"), TRUE); // 这里的t1是个数组,里面含有数组对象 $t = $data['t1']; // 将数组对象中的value取出赋予新数组 foreach ($t as $key => $v) { $arr[] = $v['value']; } // 按逗号开始分隔,将数据一一分隔 $name = join(',', $arr); // 链接数据库 include 'mysql.php'; // 插入数据,第一个空值是ID自增,$name是分隔数组后的多个数据 $sql = "insert into t1 values('', '$name')"; // 执行sql语句 $res = mysqli_query($conn, $sql); // echo $t; echo json_encode($arr); echo $name; ?> ``` 这是前端页面 这是数据库数据 ![这是数据库数据](https://img-ask.csdn.net/upload/202003/01/1583061197_885722.png)
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
C++(数据结构与算法):62---搜索树(二叉搜索树、索引二叉搜索树)
一、搜索树的复杂度分析 本文考察二叉搜索树和索引二叉搜索树 二叉搜索树的渐进性能可以和跳表媲美: 查找、插入、删除操作所需的平均时间为Θ(logn) 查找、插入、删除操作的最坏情况的时间为Θ(n) 元素按升序输出时所需时间为Θ(n) 虽然在最坏情况下的查找、插入、删除操作,散列表和二叉搜索树的时间性能相同,但是散列表在最好的情况下具有超级性能Θ(1) 不过,对于一个指定的关键...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
立即提问