求帮忙解决jQuery结合Ajax提交json,struts2接收json的问题

先附上代码
js代码

 var tableData=new Array();
        $("#TB1 tr:gt(0)").each(function(trindex,tritem){
                tableData[trindex]=new Array();
                $(tritem).find("td").each(function(tdindex,tditem){
                    if($(tditem).text()!="删除|修改|提交"){
                        tableData[trindex][tdindex]=$(tditem).text();
                    }
                });
          });
          alert(tableData[0]);
          var params={"aList":tableData};
          $.ajax({
            url:"tjplAjax",
            type:"post",
            data:params,
            dataType:"json",
            success:function(data){

其中tableData是一个二维数组,alert(tableData[0]);的输出结果是一个数组
Action的接收部分代码如下

 public class TjplAjaxAction extends ActionSupport {
    private List<Object[]> aList;
    getter和setter方法
    }

这样接收对吗,我现在都不知道我写的这是什么,不知道这样写对吗,有没有高手指点下

4个回答

不知道是传送数据有问题还是我接收收据有问题啊,没有高手帮忙指点和修改下吗

var params={"aList":JSON.stringify(tableData)};///要转为对应的json字符串,要不就是数据的默认操作,会转为字符串分隔的字符串

jialiang1012
jialiang1012 Action那边还是接收不到数据,属性aList是空
3 年多之前 回复
jialiang1012
jialiang1012 那Action那边接收的还要改吗?
3 年多之前 回复

帖子要沉了,问题还没有解决,高手呢??

这种情况还是自己写一个转换器最靠谱.

u013855332
doggy1853 可以在方法内使用JSON进行数据提取。java比较好用的JSON类库有GSON,你可以看下。
3 年多之前 回复
u013855332
doggy1853 回复jialiang1012: 像无聊码农说的,前台使用json传输;在后台使用String类型接收就可以了。接收为String之后可以
3 年多之前 回复
jialiang1012
jialiang1012 回复doggy1853: 我这个功能其实就是用ajax批量提交表格数据的功能,然后后台接收批量提交过来的数据,实现这个功能有没有好的方式呢?
3 年多之前 回复
jialiang1012
jialiang1012 回复doggy1853: 这两天忙,没来的及看回复,百度搜看了下转换器,感觉有点难搞,还有没有其他的更好的方法吗?
3 年多之前 回复
u013855332
doggy1853 回复doggy1853: 所有数据传到服务器都是String,对于简单类型(String/int/Date)Struts2可以自动转换,复杂的数据就得自己手动转换了,具体是继承StrutsTypeConvertor(大概这个名字)然后配置下就OK了。你可以再百度下,实在不行加我QQ392135562。
3 年多之前 回复
jialiang1012
jialiang1012 转换器是什么,新手不懂
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jquery1.4.4 ajax json 在struts2.2.1中没法封装对象,求解脱
才学着用jquery的ajax,用json封装对象在action中找不到,求大神帮看下: js: [code="java"] $("#editViewMethod").click(function(){ var ids = ""; var flag = 0; var jsonStr = ""; $("input[type='checkbox'][name!='checkAll']").each(function(){ if($(this).attr("checked")){ flag = flag + 1; ids = ids+","+$(this).attr("value"); } }); if(flag == 0){ alert("您没有选择!"); }else if(flag > 1){ alert("请选择一条记录!"); }else{ alert("ids="+ids); jsonStr = '["0","5"]'; //alert(jsonStr); //$.post("delServerMethod.do",{"idList":jsonStr}, delMethod,"json"); var para = {"idList":"[\"0\",\"5\"]"}; var para1 = {"methods.methodId":"5","methods.methodName":"1"}; var p = jQuery.parseJSON(para1); $.ajax({ type: "POST", url: "json/editServerMethod.do", data: para1, dateType:"json", error: function(){ alert("Error loading json Object"); }, success: function(data){ alert(data); //$.each(json,function(i,n){ // alert("Key:"+i); // alert("Value:"+n); //}); //var jsonMsg = JSON.stringify(json); //alert(jsonMsg); alert(data.methods.methodId); } }); } }); [/code] 上面是js部分 [code="java"] <!--jquery ajax json --> <package name="ajaxJson" namespace="/soms_sys/cdn/serverManager/json" extends="json-default" > <action name="delServerMethod" method="delServerMethod" class="com.jwzt.soms.cdn.action.CdnServMethodAct"> <result name="del_success" type="json"> <param name="includeProperties">message</param> </result> </action> <action name="editServerMethod" method="editServerMethod" class="com.jwzt.soms.cdn.action.CdnServMethodAct"> <result name="edit_success" type="json"> <param name="includeProperties">methods\.*</param> <param name="excludeProperties">methods\.soms4CdnServer</param> </result> </action> </package> [/code] [code="java"] @SuppressWarnings("serial") public class CdnServMethodAct extends JeeCoreAction { protected static Logger logger = LoggerFactory.getLogger(CdnServerAct.class); private Soms4CdnAccessMethods methods; private List<String> idList; private String ids; private String message; public String delServerMethod(){ String id = idList.get(0);//methods.getMethodId(); System.out.println("get Method Id from ajax json:"+id); this.setMessage("success"); System.out.println("json return =="+this.getMessage()); idList = new ArrayList<String>(); idList.add("1"); idList.add("2"); return "del_success"; } public String editServerMethod(){ String id = idList.get(0);//methods.getMethodId(); System.out.println("get Method Id from ajax json:"+id); this.setMessage("success"); System.out.println("json return =="+this.getMessage()); idList = new ArrayList<String>(); idList.add("1"); idList.add("2"); methods.setMethodId(5); methods.setMethodName("test"); return "edit_success"; } public Soms4CdnAccessMethods getMethods() { return methods; } public void setMethods(Soms4CdnAccessMethods methods) { System.out.println("进来了,我是JSON..............."); System.out.println("Soms4CdnAccessMethods..............."); System.out.println("methods.name="+methods.getMethodName()); this.methods = methods; } public List<String> getIdList() { return idList; } public void setIdList(List<String> idList) { System.out.println("进来了,我是JSON..............."); System.out.println("list长度==="+idList.size()); System.out.println("idList[0]="+idList.get(0)); this.idList = idList; } //setter or getter [/code] 死活出不来 这个包: commons-collections-3.2.jar commons-lang-2.3.jar commons-logging-1.0.4.jar ezmorph-1.0.3.jar json-lib-2.1-jdk15.jar struts2-json-plugin-2.2.1.jar [code="java"] 2010-12-30 10:51 WARN c.j.c.h.HibernateSessionFilter - HibernateSessionFilter begin doChain 进来了,我是JSON............... Soms4CdnAccessMethods............... methods.name=null [/code] 证明是能进action的 但前面ajax总是error data用para也能进action,但idList总是第一个有值 [code="java"] 2010-12-30 10:56 WARN c.j.c.h.HibernateSessionFilter - HibernateSessionFilter begin doChain 进来了,我是JSON............... list长度===1 idList[0]=["0","5"] get Method Id from ajax json:["0","5"] json return ==success [/code] 这是怎么回事? 向各位大神求教.. 急 急 急
jsp+struts2+jquery ajax返回Internal server error
架构: struts2+jsp+jquery 关键代码: jQuery.ajax({ url: 'business/xxxx.action', data: 'id='+id, type: 'POST', dataType:"json", error: function(request,textStatus,errorThrown) { alert(errorThrown); //前台打出:internal server error alert(request.status); //前台打出: 500 alert(request.readyState); //前台打出:4 alert(textStatus);//前台打出: 空字符串 }, 1.后台程序不报错,返回的json字符串也没有问题(已跟踪过代码) 应该是struts往前台传值的时候出了问题,可是看不到报错,不得而知 2.怀疑是json长度的问题,因为如果把长度改小,就可以正常显示数据,不会走error方法了 所以,和json格式也无关。 求问到底怎么修改?
jquery.ajax struts2 不能返回数据
``` jquery.ajax struts2 采用上下文方式获取response, 提交两次才能提交到struts里,而且不能返回,偶尔能返回,这是在IE上的,在firefox不能访问,代码如下: 前端代码: <script src="jquery-3.0.0.js"></script> <script> $(document).ready(function(){ $("button").click(function(){ var username= document.getElementById("name").value; var password = document.getElementById("password").value; alert(username+" "+password); //var json = {"name":username,"password":password}; $.ajax({ type:"get", url:"http://127.0.0.1:8080/AjaxJsonStruts1/login.action", async:true, //data:"json="+JSON.stringify(json), data:"name="+username+"&password="+password, success:function(datas){ alert(datas); }, error:function(){ alert("登录出错"); //window.open("error.html"); } }); }); }); </script> </head> <body> <form> 用户名:<input type="text" id="name" /><br /> 密码: <input type="password" id="password"/><br /> <button>登录</button><br /> <!--<button id="register">注册</button>--> </form> 后台: <struts> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <constant name="struts.devMode" value="true"/> <constant name="struts.i18n.encoding" value="UTF-8" /> <package name="default" extends="struts-default" > <action name="login" class="com.action.LoginAction" method="login"/> <action name="register" class="com.action.RegisterAction"/> </package> </struts> package com.action; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.ws.Response; import net.sf.json.JSONObject; import org.apache.struts2.ServletActionContext; import com.bean.User; import com.opensymphony.xwork2.ActionSupport; import com.sun.xml.xsom.impl.WildcardImpl.Other; public class LoginAction extends ActionSupport{ private HttpServletRequest request; private HttpServletResponse response; public LoginAction(){ request = ServletActionContext.getRequest(); response = ServletActionContext.getResponse(); } public void login() throws IOException{ //System.out.println("begin"); //response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Cache-Control", "no-cache"); response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); /*String jsonstring = request.getParameter("json"); JSONObject json = JSONObject.fromObject(jsonstring);*/ User user = new User(); String name = request.getParameter("name"); String password = request.getParameter("password"); user.setName(name); user.setPassword(password); //user = (User) JSONObject.toBean(json, User.class); System.out.println("user : "+user.getName()+" : "+user.getPassword()); String answer=""; if("admin".equals(user.getName())&&"123456".equals(user.getPassword())){ System.out.println("success"); answer="success"; }else{ System.out.println("erorrr"); answer="error"; } out.print(answer); out.flush(); out.close(); } public HttpServletRequest getRequest() { return request; } public void setRequest(HttpServletRequest request) { this.request = request; } public HttpServletResponse getResponse() { return response; } public void setResponse(HttpServletResponse response) { this.response = response; } } ```
jquery ajax json + hibernate 有关lazy策略的问题
在使用Ajax向后台提交数据后,要返回数据时,通过hibernate去查询数据,但是json会将有关的数据一起读出来,但是我不要那么多的数据。 如何才能将设置json不去获取那么多的数据!!! 很急!!在线求大神解救!!! 报错如下: 2014-09-05 16:38:55 ERROR org.hibernate.LazyInitializationException.<init>(LazyInitializationException.java:42) - failed to lazily initialize a collection of role: com.wsxh.entity.Userinfo.contracts, no session or session was closed org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.wsxh.entity.Userinfo.contracts, no session or session was closed at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380) at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365) at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108) at org.hibernate.collection.PersistentSet.equals(PersistentSet.java:429) at java.util.Vector.indexOf(Vector.java:404) at java.util.Vector.contains(Vector.java:363) at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:113) at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:336) at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:235) at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:164) at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:130) at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:336) at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:235) at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:164) at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:130) at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:336) at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:235) at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:164) at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:130) at org.apache.struts2.json.JSONWriter.write(JSONWriter.java:98) at org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:112) at org.apache.struts2.json.JSONResult.execute(JSONResult.java:198) at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2440) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2429) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
基于SSH框架的AJAX,在struts标签下验证id是否存在,或者使用JQuery和JSON
我在做一个简单的例子,对输入表单进行验证,因为在JSP页面中使用了struts的标签,现在在action名-方法名-validation.xml里进行的验证可以正常工作,但是在尝试利用ajax方式进行异步服务器端验证的时候遇到了困难,查了一些资料,说是struts2.1以后的版本中,不能再用struts标签进行ajax验证,而是要通过struts-dojo标签,而我找了几个这个版本的例子,发现实现的方式是在struts表单中加入onblur属性触发js函数,这样的话还何必使用struts标签的form呢?于是又找了一些不使用<s:form>表单的例子,用到了Jquery.js和json插件,但现在还有一些疑问如下. 1.<s:form>表单中能嵌套使用普通的html标签么?我尝试在<s:form>内部的<s:textfield>后加入<scan id="xxx">这样的标签发现没用,放到<s:form>外面则可以正常显示,那么如果在<s:form>内部想要实现异步验证显示不同的提示应该怎么实现呢? 2.针对一个<s:textfield>提交的内容 比如用户名或者ID这样在数据库中不允许重复的字段,是否只能用onblur="xx"这样的方式来进行失去焦点时进入xx这个js函数进行验证?我看的struts书中对struts2.0中可以通过设置<s:form>中 theme="ajax"来实现,那么相对应的struts2.1版本应该如何实现呢? 3.我又找了不用<s:form>标签的例子,是用jquery.js和json插件,但例子使用的输入只有一个<input>样式的,没有包含在<form>里 那么如果<form>有了提交的action 单独一行的输入如何执行自己单独要执行的验证action呢? 字打的比较多也比较乱,因为我的基础比较差,见谅.
jquery+json+struts问题
<p>小弟今天用jquery+json+struts做了一个小例子,如下是我的javascript代码</p> <pre name="code" class="js">function testJson(){ var User = {"bbb0aaa":"a.mod","bbb1aaa":"b.mod"}; alert(User.bbb0aaa); url = "findTemplateInfos.action"; $.getJSON(url,function(json){ var v2 = json.jsonValue; var v4 = v2.bbb0aaa; }); } </pre> <p> <br>alert(User.bbb0aaa)可以输出值a.mod; <br>v2的值为:{"bbb0aaa":"a.mod","bbb1aaa":"b.mod"}; <br>可是v4却是undifined值。按道理说v2的值就是上面的user变量,为什么会是undifined值呢?</p> <p> </p>
struts 接收 jquery带参数ajax请求
<p> </p> <pre name="code" class="js">$("input[name=#delete]").click(function(e) { var productTypeId = parseInt($(this).parent().parent() .children(".productTypeId").html()); // var json = { // parameter : productTypeId // } // var strjson = JSON.stringify(json); alert(productTypeId); // var url = "controller/product/productType!deleteProductType.action"; // var jsonObject = { // id : productTypeId // }; // JSON对象 // var strjson = JSON.stringify(jsonObject); // 将JSON对象转变成JSON格式的字符串 // $.post(url, { // json : strjson // }, callback); $.ajax({ url : "controller/product/productType!deleteProductType.action", // dataType : "text", // 这个为什么要注释掉呢? data : "productType.id=productTypeId", type : "post", success : function(data) { alert("删除成功"); }, complete : function(XMLHttpRequest, textStatus) { // closeWindow(); alert(this); }, error : function(data) { alert("删除失败"); } }); });</pre> <p> 我要把productTypeId传递给struts2 的action,action接收这个数据进行删除操作,下面是action代码:</p> <p> </p> <pre name="code" class="java">public String deleteProductType() { // System.out.println(productType.getId()); // JSONObject jsonObject = new JSONObject(); // int productTypeId = Integer.parseInt(jsonObject.getJSONObject(json) // .getString("parameter")); // productTypeService.delete(ProductType.class, productTypeId); // System.out.println(productTypeId); // queryPage(); // return "deleteProductType"; productTypeService.delete(ProductType.class, productType.getId()); System.out.println(productType.getId()); return null; }</pre> <p>  控制台输出的<span style="white-space: pre;">productType.getId()为null;请朋友费心帮忙一下,只要可以让我用jquery把数据发送给action就行,即使是代码全改了;</span></p>
struts2+freemarker+jquery的表单提交问题
我在使用struts2+freemarker+jquery组合做WEB应用的时候,碰到一个问题,首先通过action请求比如request.aciton 返回freemarker模板文件的页面比如配置的login.ftl,在模板文件login.ftl内有一个表单和一个json的ajax表单提交程序,我要使用ajax提交,但是在点击提交按钮的时候有了两个请求,一个是对request.aciton的请求,一个是通过ajax的请求,请问大佬们这是什么问题导致的呢,因为在通过action请求返回freemarker模板页面时,IE的url也是action请求url也即request.action
jquery+json+struts2在IE下就是通不过,怎么回事?
最近刚学json,用jquery的$.ajax+struts2.1.6用个简单的例子试了下,在ff下表现正常,但IE就是通过不了,上网查了一天,发现像我这样的情况不是很多,没办法,只有来这里看有没有人也出现这种情况 我的action [code="java"] import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionSupport; @Controller("forum.util") public class ForumUtilAction extends ActionSupport{ protected final Log logger = LogFactory.getLog(getClass()); String id; String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public void setId(String id) { this.id = id; } public String setNotice(){ message="abc"; return "success"; } } [/code] 配置文件: [code="xml"] <package name="json.forum" namespace="/forum/json" extends="json-default"> <action name="setNotice" class="forum.util" method="setNotice"> <result type="json"> <param name="ignoreHierarchy">false</param> <param name="noCache">true</param> <param name="excludeNullProperties">true</param> </result> </action> </package> [/code] 页面js [code="js"] <script type="text/javascript" src="/dlspace/js/jquery-1.2.6.min.js"></script> <script type="text/javascript"> function setNotice(){ $.ajax({ type: "post", url: "/dlspace/forum/json/setNotice.do", dataType: "json", cache: false, success: function(data){ alert("success"); }, error: function(data,x,y){ alert(data); //这里打印 [object] alert(x); //这里打印 parseerror alert(y); //这里打印 undefined alert("wrong"); } }); } </script> [/code] 在Firefox下能够正常打印“success”,但IE下就是不行,直接进error函数了,在控制台中也看到了action返回的json数据,显示为[JSON]{"message":"abc"},是我哪里弄错了吗?希望牛人解惑 [b]问题补充:[/b] [quote]LZ使用的是直接的jsonplugin吗?LZ试一下这个com.googlecode.jsonplugin 我一般都使用这个plugin http://code.google.com/p/jsonplugin/downloads/list jansel (高级程序员) 2009-09-01[/quote] 我使用的就是你提供的网页中的jsonplugin-0.34.jar这个版本,你所说的“直接的jsonplugin”是什么意思?谢谢
Struts2+json-plugin+jQuery的业务异常显示解决方案
在我的项目中使用了Struts2+json-plugin+jQuery的方式进行Ajax通讯,但是对于自定义异常的显示没有什么好的解决方式。 <br />$.ajax({ <br />type:"post", <br />url:"xxxaction!deleteXXX", <br />dataType:"text", <br />data: { <br />&nbsp;&nbsp; treeNodeIdList : chkrows <br />}, <br />success: function(e) { <br />&nbsp;&nbsp; alert("删除数据成功"); <br />}, <br />error:function(xmlhttp,textStatus, errorThrown) { <br />&nbsp;&nbsp; alert("删除数据失败:" + 这里是自定义异常信息); <br />} <br />}); <br /> <br />xxxaction的deleteXXX方法 <br />public String deleteXXX() throws Exception { <br />&nbsp;&nbsp;&nbsp; logger.debug("删除XXXID为:" + XXX) <br />&nbsp;&nbsp;&nbsp; throw new BusinessException("不能删除"); <br />&nbsp;&nbsp;&nbsp; return "success"; <br />} <br />配置文件就是正常的 <br />&lt;action name="XXXAction" class="XXX"&gt;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;result type="json"&gt;&lt;/result&gt;&nbsp;&nbsp; <br />&lt;/action&gt;&nbsp; <br /> <br />现在情况是如果在Tomcat下那么返回的是一段HTML,也就是我们经常看到的Tomcat报错的那个页面。 <br />如果在Struts2中进行异常处理,设置一个比如global-exception进行处理,那么返回的就是Struts2的异常处理页面HTML。并且这个时候Ajax调用是成功的方法,不调用error方法,我想问问大家,你们的项目中遇到这个问题是怎么处理的?
求大佬帮忙看看,在SSH框架中Action接受不到jquery_Ajax的data数据,该怎么办啊?
我的jquery代码是这样的 ``` <script type="text/javascript"> $(document).ready( function(){ $("#btnSearch").click(function(){ var id=$("#sid").val(); $.ajax({ type:"post", url:"${pageContext.request.contextPath }/staffInfo_QuerySInfo.action", contentType:"application/json;charset=UTF-8", async:false, data:{sid:id}, dataType:"json", success:function(json){ console.log(json); var i, x=""; x = json.dataMap.staffInfo.SId; document.getElementById("content").innerHTML = x; }, error:function(){ alert("error"); } }); } ); } ); </script> ``` 表单是这样的 ``` <form class="navbar-form navbar-left" role="search" id="SearchById" > <div class="form-group"> <div class="input-group"> <input id="sid" name="sid" type="text" class="form-control" placeholder="输入编号查询"/> <span class="input-group-btn"> <button id="btnSearch" class="btn btn-default" > <span class="glyphicon glyphicon-search"></span> </button> </span> </div> </div> </form> ``` action的代码如下: ``` package sshpack.action; import java.util.HashMap; import java.util.Map; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import sshpack.entity.StaffInfo; import sshpack.service.StaffInfoService; public class StaffInfoAction extends ActionSupport { private StaffInfoService staffInfoService; public void setStaffInfoService(StaffInfoService staffInfoService) { this.staffInfoService = staffInfoService; } // 根据编号查询 private Integer sid; public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } private Map<String, Object> dataMap; public Map<String, Object> getDataMap() { return dataMap; } public void setDataMap(Map<String, Object> dataMap) { this.dataMap = dataMap; } public String QuerySInfo() { String Sid = ServletActionContext.getRequest().getParameter("sid"); if (Sid != null) { sid = Integer.valueOf(Sid); } StaffInfo staffInfo = staffInfoService.QueryStaffInfoById(sid); if (staffInfo != null) { dataMap = new HashMap<String, Object>(); dataMap.put("staffInfo", staffInfo); dataMap.put("success", true); return "queryResult"; } else { return "error"; } } ``` Struts为: ``` <package name="json_data" namespace="/" extends="json-default"> <action name="staffInfo_*" class="staffInfoAction" method="{1}"> <result name="queryResult" type="json"> <param name="root"> dataMap </param> </result> </action> </package> ``` ![图片说明](https://img-ask.csdn.net/upload/201905/06/1557144308_254875.png) 我猜是不是这里这句话ServletActionContext.getRequest().getParameter("String")有问题啊,不用这个又要怎么才能接收数据啊 就像这样后台的action得不到数据,sid始终是空的,该怎么解决啊,找了好久都没找到解决办法........
struts2.1.6+jquery+json在IE下能正常工作的demo,纯送分题
谁能提供一个demo,如能满足以下条件,分就是你的,有货的请发我邮箱 shuishou0443@sina.com 或 11237794@qq.com,同时回答说明一下,要求如下: 1.最好是war包,放tomcat下既可运行的 2.主要是struts2.1.6+json+jquery的demo,demo中必须要有能成功使用jquery的$.ajax函数访问action,格式为json的例子 [b]3.最重要的,能在windows2000下的ie里成功运行[/b] 够简单的吧,这么多分,上哪去拿啊!
struts2 和 jquery.ajax交互时候,传递list的一些问题;
<pre name="code" class="java">这是struts.xml配置 &lt;action name="userInfo" class="userInfo" &gt; &lt;result name="managementIndex" type="json"&gt; /WEB-INF/test.jsp &lt;/result&gt; &lt;/action&gt; </pre> <p> </p> <pre name="code" class="java">这是action public class UserInfoAction extends BaseAction { private String result; public String list() { UserInfo user = new UserInfo(); user.setAddress("北京"); user.setPhone("123"); List list = new ArrayList(); list.add(user); JSONArray json = JSONArray.fromObject(user); result = json.toString(); return "SUCESS"; } }</pre> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p>以下是jsp里的代码, 用的jquery</p> <p> </p> <pre name="code" class="js">$(document).ready( function() { var params = "aaa"; $("#change").click( function() { $.ajax({ url:'userInfo_list.action', type:'post', dataType:'json', data:params, success:callbackF }); }); }); function callbackF(data){ var info = eval("("+data+")"); 。。。。请问这里往下怎么解析????怎么一直解析不出来 }</pre> <p> </p> <p> </p> <p>以上是代码部分,  后台传递过来一个list , list里面有若干User类,  回调函数里,怎么把这个list完全取出来呢???   for循环吗?  我试过了  解析不出来, 求指点,要代码的。</p> <p> </p>
在SSH框架中Action接受不到jquery_Ajax的data数据
我的jquery代码是这样的 ``` <script type="text/javascript"> $(document).ready( function(){ $("#btnSearch").click(function(){ var id=$("#sid").val(); $.ajax({ type:"post", url:"${pageContext.request.contextPath }/staffInfo_QuerySInfo.action", contentType:"application/json;charset=UTF-8", async:false, data:{sid:id}, dataType:"json", success:function(json){ console.log(json); var i, x=""; x = json.dataMap.staffInfo.SId; document.getElementById("content").innerHTML = x; }, error:function(){ alert("error"); } }); } ); } ); </script> ``` 表单是这样的 ``` <form class="navbar-form navbar-left" role="search" id="SearchById" > <div class="form-group"> <div class="input-group"> <input id="sid" name="sid" type="text" class="form-control" placeholder="输入编号查询"/> <span class="input-group-btn"> <button id="btnSearch" class="btn btn-default" > <span class="glyphicon glyphicon-search"></span> </button> </span> </div> </div> </form> ``` action的代码如下: ``` package sshpack.action; import java.util.HashMap; import java.util.Map; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import sshpack.entity.StaffInfo; import sshpack.service.StaffInfoService; public class StaffInfoAction extends ActionSupport { private StaffInfoService staffInfoService; public void setStaffInfoService(StaffInfoService staffInfoService) { this.staffInfoService = staffInfoService; } // 根据编号查询 private Integer sid; public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } private Map<String, Object> dataMap; public Map<String, Object> getDataMap() { return dataMap; } public void setDataMap(Map<String, Object> dataMap) { this.dataMap = dataMap; } public String QuerySInfo() { String Sid = ServletActionContext.getRequest().getParameter("sid"); if (Sid != null) { sid = Integer.valueOf(Sid); } StaffInfo staffInfo = staffInfoService.QueryStaffInfoById(sid); if (staffInfo != null) { dataMap = new HashMap<String, Object>(); dataMap.put("staffInfo", staffInfo); dataMap.put("success", true); return "queryResult"; } else { return "error"; } } ``` Struts为: ``` <package name="json_data" namespace="/" extends="json-default"> <action name="staffInfo_*" class="staffInfoAction" method="{1}"> <result name="queryResult" type="json"> <param name="root">dataMap</param> </result> </action> </package> ``` ![图片说明](https://img-ask.csdn.net/upload/201905/06/1557143402_391736.png) 我猜是不是这里这句话ServletActionContext.getRequest().getParameter("String")有问题啊,不用这个又要怎么才能接收数据啊 就像这样后台的action得不到数据,sid始终是空的,该怎么解决啊,找了好久都没找到解决办法快崩溃了..............
jquery与servlet交互的json问题
框架用烦了,目前只用servlet和jquery,servlet返回json数据,jquery在前面无刷新的解析,原来用struts2自带的jsonplugin,现在用google-gson包生成json字符串,但是为什么不行呢? 前台页面jquery请求后台servlet: $(document).ready(function(){ $("#b_submit").click(function(){ $.ajax({ type:"POST", url:"buttonSubmit", data:{ id:1, name:"zhang" }, success:function(data){ alert(data.list); }, dateType:"json" }) }); }) 后台servlet代码: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //response.setContentType("application/x-json"); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); String name = request.getParameter("name"); String id = request.getParameter("id"); System.out.println(name); System.out.println(id); List<TestBean> tbList = new ArrayList<TestBean>(); TestBean tb = new TestBean(); tb.setId(id); tb.setName(name); tbList.add(tb); TestBean tb2 = new TestBean(); tb2.setId("2"); tb2.setName("gu"); tbList.add(tb2); Gson gson = new Gson(); HashMap<String,List<TestBean>> map = new HashMap<String,List<TestBean>>(); map.put("list", tbList); out.print(gson.toJson(map)); out.close(); } 但是为什么不行呢?有朋友说要换成response.setContentType("application/x-json");但是我也试了,也不行,页面用data.list时总是undefined,用data.length,它会按string的长度返回来,后来用JSON.parse来转换是可以的,但我觉得这样麻烦,如果能返回json数据,又何必再转换一下呢?效率就降低了,请大家帮助! [b]问题补充:[/b] 我返回来的是一个类似的json格式的字符串,但是我用js去判断的时候,会有问题: 例如:{"list":[{"id":1,"name":"gu"},{"id",2,"name":"zhang"}]} 我用data.list取不到值啊,这是为什么呢?以前集成struts2框架时都是可以的
struts2+json
<p>&lt;action name="IndexLogin" class="action.LoginAction" method="IndexLogin"&gt;<br>      &lt;result name="error" type="json"&gt;&lt;/result&gt;<br>      &lt;result name="query" &gt;/index.jsp&lt;/result&gt;<br>  &lt;/action&gt;</p> <p> </p> <p>页面jquery请求进入IndexLogin的方法,我想验证用户名和密码,如果错误就是ajax的弹出错误提示信息,如果正确是否能用struts2的&lt;result name="query" &gt;/index.jsp&lt;/result&gt;直接跳转连接或者其他什么办法能再struts2中直接跳转,而不需要回到页面再使用window.location = "./index.jsp";</p>
action响应ajax请求返回json类型执行不了success
我的action能响应ajax请求,但是不知道是返回的不是json还是其他的问题,就是执行不了success,代码如下: jsp代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script> <script type="text/javascript"> function change(proCode){ alert("1 "+proCode); $('#proCode').val(proCode); //让第一个下拉框保持显示选中的值 $('#cityCode').html(""); //把ci内容设为空 var cityValue = $('#cityCode'); cityValue.append('<option value="">选择CITY</option>'); $.ajax({ url: '/GP/address.action?proCode='+proCode, type: 'post', //data: {}, dataType: 'json', //async:false, cache:false, success: function(opts) { alert(opts.length); if (opts!=null && opts.length > 0) { var html = []; for (var i = 0; i < opts.length; i++) { html.push('<option value="'+opts[i].cityCode+'">'+opts[i].cityName+'</option>'); } cityValue.append(html.join('')); } }, error: function(){ alert("error !"); } }); } <body> <table> <tr> <td width="10%"> 省份&nbsp;&nbsp; </td> <td width="30%"> <select name="province.proCode" id="proCode" onchange="change(this.value)"> <option value="0">--请选择所在省份--</option> <s:iterator value="#request.prolist"> <option value="${proCode }">${proName }&nbsp;${proCode }</option> </s:iterator> </select> </td> </tr> <tr> <td width="10%"> 城市&nbsp;&nbsp; </td> <td width="30%"> <select name="city.cityCode" id="cityCode"> <option value="0" >--city--</option> </select> </td> </table> </body> </html> action代码: public class AddressAction extends ActionSupport { private static final long serialVersionUID = 1L; private IProvinceService proService; private ICityService cityService; private String proCode; private String opts; public String getProCode() { return proCode; } public void setProCode(String proCode) { this.proCode = proCode; } public String getOpts() { return opts; } public void setOpts(String opts) { this.opts = opts; } public IProvinceService getProService() { return proService; } public void setProService(IProvinceService proService) { this.proService = proService; } public ICityService getCityService() { return cityService; } public void setCityService(ICityService cityService) { this.cityService = cityService; } public String selectAddress() throws Exception { if(proCode==null)proCode=""; System.out.println("proCode="+proCode); List<City> citylist = cityService.findByProCode(proCode); List<Province> prolist = proService.searchAll(); if(proCode!=null&&proCode!="") System.out.println(citylist.get(0).getCityName()); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("citylist", citylist); request.setAttribute("prolist", prolist); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); PrintWriter writer = response.getWriter(); JSONArray array = JSONArray.fromObject(citylist); opts = array.toString(); writer.print(opts); return SUCCESS; } } 求大神赐教,谢谢!
ajax+struts2提示找不到action
用的是jQuery的ajax请求,请求action中的某个方法,但总是提示Could not find action or result. 请求的路径: url : "/AssetsWeb/boc/financialfare/statistics/exportHtml"; 提示的错误: There is no Action mapped for namespace /boc/financialfare/statistics and action name [object Object]. - [unknown location]; struts配置文件: <struts> <include file="struts-default.xml" /> <!-- 統計模組 --> <package name="financialfare-statistics" namespace="/boc/financialfare/statistics" extends="json-default,jasperreports-default"> <action name="exportHtml" class="com.boc.web.action.financialfare.statistics.BudgetMonitoringConditionAction" method="exportHtml"> <result type="json"></result> <result name="input">/ui/financialfare/budgetmonitoringcondition/budget_monitoring_condition_list.vm</result> </action> </package> </struts> struts中的方法: public String exportHtml() throws Exception { // ruleList = generateRules(); System.out.println("yyyyyyyyyyyyyyyyyyyyyyyyyyy"); System.out.println("yyyyyyyyyyyyyyyyyyyyyyyyyyy"); return SUCCESS; } 请各位赐教~
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
死磕YOLO系列,YOLOv1 的大脑、躯干和手脚
YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。 之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析它。这是第一篇,从它的起始 YOLOv1 讲起。 YOLOv1 的论文地址:https://www.c
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
记一次腾讯面试:进程之间究竟有哪些通信方式?如何通信? ---- 告别死记硬背
有一次面试的时候,被问到进程之间有哪些通信方式,不过由于之前没深入思考且整理过,说的并不好。想必大家也都知道进程有哪些通信方式,可是我猜很多人都是靠着”背“来记忆的,所以今天的这篇文章,讲给大家详细着讲解他们是如何通信的,让大家尽量能够理解他们之间的区别、优缺点等,这样的话,以后面试官让你举例子,你也能够顺手拈来。 1、管道 我们来看一条 Linux 的语句 netstat -tulnp | gr...
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片
网络(8)-HTTP、Socket、TCP、UDP的区别和联系
TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。 一、TCP与UDP的不同 1. 是否需要建立连接。 UDP在传送数据之前不需要先建立连接;TCP则提供面向连接的服务; 2. 是否需要给出确认 对方的传输层在收到UDP报文后,不需要给出任何确认,而 TCP需要给出确认报文,要提供可靠的、面向连接的传输服务。 3.虽然UDP不提供可靠交...
简明易理解的@SpringBootApplication注解源码解析(包含面试提问)
欢迎关注文章系列 ,关注我 《提升能力,涨薪可待》 《面试知识,工作可待》 《实战演练,拒绝996》 欢迎关注我博客,原创技术文章第一时间推出 也欢迎关注公 众 号【Ccww笔记】,同时推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《提升能力,涨薪可待篇》- @SpringBootApplication注解源码解析 一、@SpringBootApplication 的作用是什
防劝退!数据结构和算法难理解?可视化动画带你轻松透彻理解!
大家好,我是 Rocky0429,一个连数据结构和算法都不会的蒟蒻… 学过数据结构和算法的都知道这玩意儿不好学,没学过的经常听到这样的说法还没学就觉得难,其实难吗?真难! 难在哪呢?当年我还是个小蒟蒻,初学数据结构和算法的时候,在忍着枯燥看完定义原理,之后想实现的时候,觉得它们的过程真的是七拐八绕,及其难受。 在简单的链表、栈和队列这些我还能靠着在草稿上写写画画理解过程,但是到了数论、图...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
开挂的人生!那些当选院士,又是ACM/IEEE 双料Fellow的华人学者们
昨日,2019年两院院士正式官宣,一时间抢占了各大媒体头条。 朋友圈也是一片沸腾,奔走相告,赶脚比自己中了大奖还嗨皮! 谁叫咱家导师就是这么厉害呢!!! 而就在最近,新一年度的IEEE/ACM Fellow也将正式公布。 作为学术届的顶级荣誉,不自然地就会将院士与Fellow作比较,到底哪个含金量更高呢? 学术君认为,同样是专业机构对学者的认可,考量标准不一,自然不能一概而论。 但...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库——点这里跳转 文章目录Python语言高频重点汇总**GitHub面试宝典仓库——点这里跳转**1. 函数-传参2. 元类3. @staticmethod和@classmethod两个装饰器4. 类属性和实例属性5. Python的自省6. 列表、集合、字典推导式7. Python中单下划线和双下划线8. 格式化字符串中的%和format9.
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
代码详解:如何用Python快速制作美观、炫酷且有深度的图表
全文共12231字,预计学习时长35分钟生活阶梯(幸福指数)与人均GDP(金钱)正相关的正则图本文将探讨三种用Python可视化数据的不同方法。以可视化《2019年世界幸福报告》的数据为例,本文用Gapminder和Wikipedia的信息丰富了《世界幸福报告》数据,以探索新的数据关系和可视化方法。《世界幸福报告》试图回答世界范围内影响幸福的因素。报告根据对“坎特里尔阶梯问题”的回答来确定幸...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
(经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
今年正式步入了大四,离毕业也只剩半年多的时间,回想一下大学四年,感觉自己走了不少弯路,今天就来分享一下自己大学的学习经历,也希望其他人能不要走我走错的路。 (一)初进校园 刚进入大学的时候自己完全就相信了高中老师的话:“进入大学你们就轻松了”。因此在大一的时候自己学习的激情早就被抛地一干二净,每天不是在寝室里玩游戏就是出门游玩,不过好在自己大学时买的第一台笔记本性能并不是很好,也没让我彻底沉...
如何写一篇技术博客,谈谈我的看法
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 我一直推崇学技术可以写技术博客去沉淀自己的知识,因为知识点实在是太多太多了,通过自己的博客可以帮助自己快速回顾自己学过的东西。 我最开始的时候也是只记笔记,认为自己能看得懂就好。但如果想验证自己是不是懂了,可以写成技术博客。在写技术博客的...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
互联网公司的裁员,能玩出多少种花样?
裁员,也是一门学问,可谓博大精深!以下,是互联网公司的裁员的多种方法:-正文开始-135岁+不予续签的理由:千禧一代网感更强。95后不予通过试用期的理由:已婚已育员工更有责任心。2通知接下来要过苦日子,让一部分不肯同甘共苦的员工自己走人,以“兄弟”和“非兄弟”来区别员工。3强制996。员工如果平衡不了工作和家庭,可在离婚或离职里二选一。4不布置任何工作,但下班前必须提交千字工作日报。5不给活干+...
【设计模式】单例模式的八种写法分析
网上泛滥流传单例模式的写法种类,有说7种的,也有说6种的,当然也不排除说5种的,他们说的有错吗?其实没有对与错,刨根问底,写法终究是写法,其本质精髓大体一致!因此完全没必要去追究写法的多少,有这个时间还不如跟着宜春去网吧偷耳机、去田里抓青蛙得了,一天天的....
《面试宝典》:检验是否为合格的初中级程序员的面试知识点,你都知道了吗?查漏补缺
欢迎关注文章系列,一起学习 《提升能力,涨薪可待篇》 《面试知识,工作可待篇》 《实战演练,拒绝996篇》 也欢迎关注公 众 号【Ccww笔记】,原创技术文章第一时间推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《面试知识,工作可待篇》-Java笔试面试基础知识大全 前言 是不是感觉找工作面试是那么难呢? 在找工作面试应在学习的基础进行总结面试知识点,工作也指日可待,欢...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
微博推荐算法简述
在介绍微博推荐算法之前,我们先聊一聊推荐系统和推荐算法。有这样一些问题:推荐系统适用哪些场景?用来解决什么问题、具有怎样的价值?效果如何衡量? 推荐系统诞生很早,但真正被大家所重视,缘起于以”facebook”为代表的社会化网络的兴起和以“淘宝“为代表的电商的繁荣,”选择“的时代已经来临,信息和物品的极大丰富,让用户如浩瀚宇宙中的小点,无所适从。推荐系统迎来爆发的机会,变得离用户更近: 快...
GitHub 标星 1.6w+,我发现了一个宝藏项目,作为编程新手有福了!
大家好,我是 Rocky0429,一个最近老在 GitHub 上闲逛的蒟蒻… 特别惭愧的是,虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞 ACM,没有做一些工程类的项目,所以想当然的以为和 GitHub 也没什么关系(当然这种想法是错误的)。 后来自己花了一个星期看完了 Pyt...
相关热词 c#导入fbx c#中屏蔽键盘某个键 c#正态概率密度 c#和数据库登陆界面设计 c# 高斯消去法 c# codedom c#读取cad文件文本 c# 控制全局鼠标移动 c# temp 目录 bytes初始化 c#
立即提问