SpringMVC list参数问题
    前端用ajax请求并传参,后台用SpringMVC接收参数,参数为list的形式如,List<[color=red]User[/color]> users,

前台传的格式形如 {users:{{name:"Tom",age:12},{name:"Petter",age:14}}}(但不确定是不是这么传),
请问应该怎么实现?

    我上网查过并测试成功的有,1.传单个参数,2.单个对象(用json传),3.甚至传String的数组(String[] ary)都可以,但是没有找到可以传对象的list或数组形式的,希望知道的速速回复,谢谢了。

10个回答

MVC的List里面只能是简单的数据类型,如Integer,String.
可以不用List,直接传个简单的String(json),
把数据封装为json即可。

参考: [url]http://www.iteye.com/problems/38116[/url]

用JSON。。。JSON也支持list其实对JS来说List和数组是一回事。。。。

应该无法传递对象。毕竟http最终的传递还是 url?k=v&k1=v1&k3=v3..的形式,

你可以将 {users:{{name:"Tom",age:12},{name:"Petter",age:14}}}整个字符串传过去,然后根据你的规则将其变成list。因此不管是json还是其他什么其实传输的都是字符串而已。

比如struts 之所以可以使用如: user.name user.age形式的参数到后台,并且可以直接拿到user对象,都是由于其框架提供的对请求相应参数进行封装的结果。

要直接使用http请求传递对象是不太可能。楼主可在查查。祝好运了。

一般都是传一个JSON字符串,后台拿到后解析成对象的

要传也是这样才对:[code="javascript"]{users:[{name:"Tom",age:12},{name:"Petter",age:14}]}[/code]

前台到后台 一般都是传一个字符串。至于这个字符串什么形式,根据实际场景而定。
JOSN是主流的也是也是一种高效的形式。你如果想直接在前后台那得用到RMI(Remote Method Invoke)远程调用技术。或者EJB远程调用。这主要取决于你前台的客户端是不是Swing 是Swing的话 就可以直接采用远程调用技术。将参数对象持久化后直接传到远程服务器。不需要转化。一般的web开发是在前台间数据以一定的字符格式加工包装后传到后,再将字符数据转化为java对象,再进行业务逻辑处理 。

对于 JSON 来说, 传单个参数, 单个对象, 对象数组, 都是一样的.
前台用 JSON javascript lib 转换成 JSON 发送,
后台找个 JSON 的 lib 转换成对象就可以了...

这样的lib 实在太多...随便网上找一个就OK

前台可以传一个JSON对象格式的字符串,后台再用jsonObj将这个字符串转换成javaBean对象。前台的字符串可以用jquery的serializeArray方法实现

String users = {users:{{name:"Tom",age:12}{name:"Petter",age:14}}}

利用阿里巴巴的fastjson.jar
User user = JSON.parseObject(users,方法名.class);
这样就生成了user对象,然后你再通过user.getXX()得到各个属性放入list中就可以了。。希望对你有帮助。。

我也来回复,其实你可以写一个JAVABEAN ,把List users 作为该JAVAbean的参数;这样就可以提交表单后台转换为JAVABEAN ,从JAVABEAN中取出LIST. :wink:

public class JAVABEAN {

List users = new ArrayList() ;

//get set 方法。。。。
}



@RequestMapping 
public @ResponseBody
String saveGridExtendMsg(JAVABEAN javabean)  {
    logger.debug("save gridExtendMsgs : " + gridExtendMsgs );
    //gridMsgInfoService.saveGridExtendMsg(gridMsgModel.getGridExtendMsgs()); //gridMsgModel.getGridExtendMsgs()
    return "1";
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
springmvc 参数传递问题
输入查询条件查询能够显示第一页查询结果,但是点击翻页出错, Required String parameter 'filename' is not present 参数无法获取,不知什么原因,求大神 jsp页面代码 ``` <script language="javascript" type="text/javascript" src="<%=request.getContextPath() %>/My97DatePicker/WdatePicker.js"></script> <% HttpSession s = request.getSession(); %> <%String s1=s.getAttribute("pagenum").toString(); String s2=s.getAttribute("pagesize").toString(); String s3=s.getAttribute("pagenow").toString(); String s4=s.getAttribute("num").toString(); int pagenum=Integer.parseInt(s1); int pagesize=Integer.parseInt(s2); int pagenow=Integer.parseInt(s3); int pagenow2=Integer.parseInt(s3)+1; int listnum=Integer.parseInt(s4); int liststep=5;//显示页码数 if (pagenum < pagenow) { pagenow = pagenum;//如果分页变量大总页数,则将分页变量设计为总页数 } if (pagenow <=0) { pagenow = 1;//如果分页变量小于1,则将分页变量设为1 } else if (pagenow >0) { pagenow = pagenow+1;//如果分页变量小于1,则将分页变量设为1 } int listbegin = (pagenow - (int) Math.ceil((double) liststep / 2));//从第几页开始显示分页信息 if (listbegin < 1) { //当前页-(总显示的页列表数/2) listbegin = 1; } int listend = (pagenow + liststep / 2)-1;//分页信息显示到第几页//当前页+(总显示的页列表数/2) if (listend > pagenum) { listend = pagenum + 1; } if(listnum<=10) { listend=1;} if(listend-listbegin+1>pagenum) { listend=pagenum;} if(listend>pagenum) { listend=pagenum;} %> <h4 align="center">上传任务管理</h4> ${pageaction} <form action="upload/searchByFileName2/<%=0 %>" method="post"> <table border="1" cellspacing="0" align="center"> <tr> <td colspan="2" align="center">查询</td> </tr> <tr> <td width="450px" align="center">文件名称:<input type="text" name="filename" value=${filename} ></td> <td width="450px" align="center"> 文件类型:<select name="filetype" > <option value="txt">txt</option> <option value="jpg">jpg</option> </select> </td> </tr> <tr> <td align="center" > 上传时间从:<input name="start" type="text" style="width: 180px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd HH:mm:ss'})"> </td> <td align="center"> 至:<input name="stop" type="text" style="width:180px;" onFocus="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd HH:mm:ss'})" /> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="查询" style="width:150px;height: 25px" />&nbsp;&nbsp; <input type="reset" value="重置" style="width:150px;height: 25px" > </td> </tr> </table> <font color="red"> ${errormessage}</font> <br> <table border="1px" cellpadding="0" cellspacing="0" align="center"> <tr> <th ><input type="checkbox" name="all" value="ds"/></th> <th >id</th> <th >文件名</th> <th >文件大小</th> <th >文件类型</th> <th >上传时间</th> <th >文件描述</th> <th >执行时间</th> <th >运行结果</th> <th >操作</th> </tr> <c:forEach var="upload" items="${upload}"> <tr> <td width="45px"><input type="checkbox" value="${upload.id}" name="single"/></td> <td width="45px">${upload.id}</td> <td width="235px">${upload.filename}</td> <td>${upload.filesize}</td> <td>${upload.filetype}</td> <td>${upload.uploaddate}</td> <td>${upload.des}</td> <td>${upload.runtime}</td> <td>${upload.result}</td> <td> <a href="">编辑</a> <a href="">删除</a><br /> </td> </tr> </c:forEach> <tr> <td align="right" colspan="10"> 当前第:<%=pagenow%>页/共<%=pagenum %>页 显示<%=pagesize %>条/共<%=listnum %>条 </td> </tr> <tr> <td align="center" colspan="10"> <% if (pagenow > 1) { %> <a href="${pageContext.request.contextPath}/${pageaction}/<%=pagenow-2 %>.html" style="text-decoration:none"> <% out.println("上一页"); }%> </a> <%for(int i=listbegin;i<=listend;i++) { pagenow=i; %> <a href="${pageContext.request.contextPath}/${pageaction}/<%=pagenow-1%>.html" style="text-decoration:none" > <% if(i==pagenow2) out.println("<font color='red'>["+i+"]</font>&nbsp;"); else out.println("["+i+"]&nbsp;"); } %> </a> <% if (pagenow !=pagenum) { %> <a href="${pageContext.request.contextPath}/${pageaction}/<%=pagenow2 %>.html" style="text-decoration:none"> <% if(listnum!=0) out.println("下一页"); }%> </a> </td> </tr> </table> </form> </body> </html> ``` jsp页面 ![图片说明](https://img-ask.csdn.net/upload/201511/11/1447217989_777414.png) controller代码 ``` @RequestMapping(value="/searchByFileName2/{pagenow}") public ModelAndView searchByFilename(HttpServletRequest request,@RequestParam String filename,@RequestParam String filetype,@RequestParam String start,@RequestParam String stop, ModelMap mod) throws ParseException { WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext(); ServletContext application = webApplicationContext.getServletContext(); String n=(String) application.getAttribute("name"); System.out.println("sssssssssss "+n); System.out.println("***************filename"+filename); System.out.println("***************start"+start); System.out.println("***************stop"+stop); System.out.println("***************filetype"+filetype); ModelAndView modelAndView=new ModelAndView("user/uploadWithPage"); if(start.equals("")&!stop.equals("")) { mod.addAttribute("errormessage", "上传日期不能为空"); return modelAndView; } if(!start.equals("")&stop.equals("")) { mod.addAttribute("errormessage", "上传日期不能为空"); return modelAndView; } Page<Upload> uploa=null; if(filename.equals("")&start.equals("")&stop.equals("")) { uploa=uploadService.findUploadByUsernameAndFiletype(n, filetype, 0, pagesize); } else if(start.equals("")&stop.equals("")) { uploa=uploadService.findUploadByUsernameAndFilenameAndFiletype(n, filename, filetype, 0, pagesize); } else if(filename.equals("")&!start.equals("")&!stop.equals("")) { uploa=uploadService.findUploadByUsernameAndFileTypeAndUploaddate(n, filetype, start, stop, 0, pagesize); } else if(!filename.equals("")&!start.equals("")&!stop.equals("")) { uploa=uploadService.findUploadByAll(n, filename, filetype, start, stop, 0, pagesize); } else { mod.addAttribute("errormessage", "上传日期不能为空"); } //当前页查询的记录数 pageitems=uploa.getNumberOfElements(); //查询出的总记录数 itemsnum=(int)uploa.getTotalElements(); //总页数 pagenum=uploa.getTotalPages(); HttpSession session = getSession(); session.setAttribute("pagenum", pagenum); session.setAttribute("pagesize", pagesize); session.setAttribute("num", itemsnum); session.setAttribute("pagenow", pagenow); session.setAttribute("filename", filename); session.setAttribute("filetype", filetype); session.setAttribute("start", start); session.setAttribute("stop", stop); mod.addAttribute("filename", filename); List<Upload> u = uploa.getContent(); if(u.size()==0) { mod.addAttribute("errormessage", "该文件不存在"); return modelAndView; } mod.addAttribute("pageaction", "upload/searchByFileName2"); modelAndView.addObject("upload",u); return modelAndView; } ```
springmvc的传值问提。用一个pojo接收数据,pojo里面有个list
例如一个pojo里面有个list《user》 users;那么接受参数springmvc ,参数写在url上,用get方式,参数要怎么写
springmvc 参数校验 使用hibernate-validator
如何校验参数是list,如下所示,直接加在参数上没有作用 @RequestMapping(value="/getUsers",method=RequestMethod.POST) @ResponseBody public String getUser(@Validated @RequestBody List<User> user,BindingResult bindingResult){ if(bindingResult.hasErrors()){ System.out.println(bindingResult.getFieldError().getDefaultMessage()+"dddd"); } System.out.println(user); return "cc"; } ``` ```
SpringMVC 中@RequestBody 注解的List<>参数如何传递?解决了立马给C币!
Controller的请求方法的一个参数是这样的: @RequestBody(required=true) List<Long> idList, 前端的json应该是怎样的? 这种不行:{"idList":[10,11,12]}; 这种也不行:[10,11,12]
springmvc 对象属性参数接收不到
user.getSysManager()获取到的是空的? 部分代码如下: bean类: ``` public class SysUser extends BaseForm implements Serializable { private static final long serialVersionUID = 8217046986932721581L; private Long USERID; // 用户ID private String LOGINNAME; // 用户帐号 private String PASSWD; // 密码 private Integer STATUSID; // 状态 private Long ORDERBY; // 排序 private Integer USERTYPE; // 用户类型 private String REMARK; // 备注 private String BEGINTIME; private String ENDTIME; private SysManager sysManager; private String OLDPASSWD; private String CONFIRMPASSWD; ``` action类 ``` /** * 列表分页 */ @RequestMapping(value = "/getTabList") @ResponseBody public PageData getTabList(SysUser user) { System.out.println(user.getSysManager()); SysUser sysUser = this.getSessionUser(); if (sysUser.getUSERTYPE() != 1) { user.setUSERID(sysUser.getUSERID()); } List<SysUser> varList = userService.list(user); return new PageData(user.getTotal(), varList); } ``` 前台 ``` <td>姓名:</td> <td><input type="text" name="sysManager.USERNAME" class="easyui-textbox" style="width: 150px;" /> </td> <td>手机:</td> <td><input type="text" name="sysManager.MOBILE" class="easyui-textbox" style="width: 150px;" /> </td> ```
SpringMVC3.2 无法接收json参数
环境:SpingMVC3.2+jQuery。 问题:方法能访问到。 1)在ajax中使用contentType : "application/json"时,controller无法获取参数。 2)在ajax中不使用contentType时,controller能获取参数,但是会报错,因为参数中含有list,去掉list可以正常访问。 JS方法片段: ``` $.ajax({ contentType : "application/json", url : systemWebUrl + "/pi/savePIDetail.do", type : "post", dataType : "json", //data : {"articleVO":JSON.stringify(formData)}, data : formData,//JSON.stringify(formData), success : function(data){ console.log(data); } }); ``` 其中传入后台的参数formData数据类似: ``` {"nodeId":"8","title":"abc","isOriginal":"1","keywords":"abc","summary":"abc","coverResourceId":"","contents":[{"type":"1","content":"asdf"},{"type":"1","content":"wqer"}]} ``` Controller代码片段: ``` @RequestMapping("/savePIDetail") @ResponseBody public String savePIDetail(ArticleVO articleVO){ ModelMap map = new ModelMap(); ArticleVO article = new ArticleVO(); //ArticleVO article = JSON.parseObject(articleVO,ArticleVO.class); map.put("msg", articleVO); return JSON.toJSONString(map); } ``` 参数ArticleVO片段: ``` ………… /** * 是否原创 */ private Boolean isOriginal; /** * 摘要 */ private String summary; /** * 内容列表 */ private List<ArticleContentVO> contents; getter/setter ``` mvc.xml配置片段: ``` <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <ref bean="fastJsonHttpMessageConverter"/> </mvc:message-converters> </mvc:annotation-driven> <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> ``` 我觉得上面这段配置返回时才用得到。 ajax中不使用contentType时,并且参数有list,后台报错内容片段: ``` org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.InvalidPropertyException: Invalid property 'contents[0][content]' of bean class [com.xxx.admin.vo.ArticleVO]: Property referenced in indexed property path 'contents[0][content]' is neither an array nor a List nor a Map; returned value was [asdf] ``` 折腾了几天了,没找到原因,使用字符串传到后台,然后JSON.parseObject()也能使用,但是总觉得不该是这样的,请大家帮忙看下原因,如果问题没有描述清楚的,请提出来,我再改,谢谢了。
springMVC注入失败的问题
运行项目后报错,请问我配置哪里写错了? ``` ERROR [localhost-startStop-1] - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'categoryController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.how2java.service.CategoryService com.how2java.controller.CategoryController.categoryService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'categoryService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.how2java.mapper.CategoryMapper com.how2java.service.impl.CategoryServiceImpl.categoryMapper; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.how2java.mapper.CategoryMapper] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} ina.core.StandardWrapper.initServlet(StandardWrapper.java:1227) ``` web.xml ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <!-- spring的配置文件--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- spring mvc核心:分发servlet --> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- spring mvc的配置文件 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springMVC.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> ``` springMVC.xml ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"> <context:annotation-config/> <context:component-scan base-package="com.how2java.controller" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> <mvc:annotation-driven /> <mvc:default-servlet-handler /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> </beans> ``` applicationContext.xml ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>123456</value> </property> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="commonSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:elecDBConfiguration.xml" /> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="*" propagation="REQUIRED" rollback-for="java.lang.Exception" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="warehouse" expression="execution (* com.how2java.service.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="warehouse" /> </aop:config> </beans> ``` elecDBConfiguration.xml ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <typeAlias alias="Category" type="com.how2java.pojo.Category" /> </typeAliases> <mappers> <mapper resource="com/how2java/mapper/Category.xml"/> </mappers> </configuration> ``` java代码 ``` package com.how2java.pojo; public class Category { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Category [id=" + id + ", name=" + name + "]"; } } ``` ``` package com.how2java.service; import java.util.List; import com.how2java.pojo.Category; public interface CategoryService { List<Category> list(); } ``` ``` package com.how2java.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.how2java.mapper.CategoryMapper; import com.how2java.pojo.Category; import com.how2java.service.CategoryService; @Service("categoryService") public class CategoryServiceImpl implements CategoryService{ @Autowired CategoryMapper categoryMapper; public List<Category> list(){ return categoryMapper.list(); }; } ``` ``` package com.how2java.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.how2java.pojo.Category; import com.how2java.service.CategoryService; // 告诉spring mvc这是一个控制器类 @Controller @RequestMapping("") public class CategoryController { @Autowired CategoryService categoryService; @RequestMapping("listCategory") public ModelAndView listCategory(){ ModelAndView mav = new ModelAndView(); List<Category> cs= categoryService.list(); // 放入转发参数 mav.addObject("cs", cs); // 放入jsp路径 mav.setViewName("listCategory"); return mav; } } ```
SpringMVC上传文件参数传递错误?
java类代码(部分): ``` @RequestMapping(value= "/doUpload", method = RequestMethod.POST) public String uploadFileHandler(HttpServletRequest request,Model model, @RequestParam("file") MultipartFile[] files) { //Root Directory String uploadRootPath = request.getServletContext().getRealPath("upload"); System.out.println("uploadRootPath=" + uploadRootPath); File uploadRootDir = new File(uploadRootPath); if(!uploadRootDir.exists())//Creat if it not exists { uploadRootDir.mkdirs(); } List<File> uploadedFiles = new ArrayList<File>(); for (int i=0;i<files.length;i++) { MultipartFile file = files[i]; String name = file.getOriginalFilename(); System.out.println("Client File Name = " + name); if(name != null && name.length() > 0) { try { byte[] bytes = file.getBytes(); File serverFile = new File(uploadRootDir.getAbsolutePath() + File.separator + name); BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile)); stream.write(bytes); stream.close(); uploadedFiles.add(serverFile); System.out.println("Write file: "+ serverFile); } catch(Exception e) { System.out.println("Error Write file : "+ name); } } } model.addAttribute("uploadedFiles", uploadedFiles); return "uploadResult"; } ``` jsp文件: ``` <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Upload Multi File</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <h2>Upload Multiple File:</h2> <form method="POST" action="doUpload" enctype="multipart/form-data"> File to upload (1): <input type="file" name="file"><br /> File to upload (2): <input type="file" name="file"><br /> File to upload (3): <input type="file" name="file"><br /> File to upload (4): <input type="file" name="file"><br /> File to upload (5): <input type="file" name="file"><br /> <input type="submit" value="Upload"> </form> </body> </html> ``` 错误信息: HTTP Status 400 - Required MultipartFile[] parameter 'file' is not present type: Status report message: Required MultipartFile[] parameter 'file' is not present description: The request sent by the client was syntactically incorrect. 初学者,百思不得其解
mybatis+springMVC的传参问题?
先描述一下需求…… 我需要在JSP前端通过 input type=date 传入两个日期参数,然后查询出下表这2个日期之间的内容 比如传入 2017-10-1和2017-10-3 这样 > /* Table: tbl_paymoney 付款表 / /==============================================================*/ create table tbl_paymoney ( pay_id NUMBER(20) not null, bat_id NUMBER(20), pay_account NUMBER(10,2), pay_pays NUMBER(10,2), pay_state VARCHAR2(20), pay_date DATE, constraint PK_TBL_PAYMONEY primary key (pay_id) ); comment on table tbl_paymoney is '付款表'; comment on column tbl_paymoney.pay_id is '付款ID'; comment on column tbl_paymoney.bat_id is '批次ID'; comment on column tbl_paymoney.pay_account is '赊账'; comment on column tbl_paymoney.pay_pays is '已付款金额'; comment on column tbl_paymoney.pay_state is '状态'; comment on column tbl_paymoney.pay_date is '日期'; > 先贴出报错吧 ``` 开始日期=2017-10-01 结束日期=2017-10-03 ipm date1=2017-10-01 ipm date2=2017-10-03 十月 06, 2017 10:53:33 上午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [springmvc] in context with path [/MedicalExaminationSystem] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.great.dao.UserDao.querySumMoney] with root cause org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.great.dao.UserDao.querySumMoney ``` 这个是action的接收类 ``` @Controller public class ReportAction { @Autowired IReportService Service; @RequestMapping("/getPayM") // 通过两个日期查询两个日期内的金额 public ModelAndView GetPayMoney(Date date1, Date date2) { ModelAndView modelAndView = new ModelAndView("Report"); System.out.println("开始日期=" + date1); System.out.println("结束日期=" + date2); List<PayMoney> list=Service.querySumMoney(date1, date2); System.out.println("跳转信息发送到界面" + list); if (list != null) {// 判断不为空跳转 System.out.println("返回"); modelAndView.addObject(list); return modelAndView; } else { return modelAndView; } } } ``` 这个是接口 ``` public interface IReportService { public List<PayMoney> querySumMoney(Date date1,Date date2); ``` 这个是实现类 这里的sys测试就打印不出来了 ``` @Service public class ReportServiceImp implements IReportService{ @Autowired private UserDao UserDao; @Override public List<PayMoney> querySumMoney(Date date1, Date date2) { System.out.println("ipm date1="+date1); System.out.println("ipm date2="+date2); List<PayMoney> list=UserDao.querySumMoney(date1, date2); System.out.println("测试"+list); if (list != null) { return list; } return null; } } ``` userdao ``` @Repository public interface UserDao { public List<PayMoney> querySumMoney(Date date1,Date date2);//通过日期查询付款表内容 } ``` 接下来是mapper 这里我感觉应该就是问题的源泉…… 里面的pay_date1和2我感觉问题比较大…… ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.great.dao.UserDao"> <select id="querySumMoney" resultType="com.great.entity.PayMoney" parameterType="com.great.entity.PayMoney" resultMap="BaseResultMap"> select sum(pay_account+pay_pays) from TBL_PAYMONEY where to_char(tbl_paymoney.pay_date,'yyyy-mm-dd') between '#{pay_date1,jdbcType=DATE}' and '#{pay_date2,jdbcType=DATE}'; </select> </mapper> ``` 最后是bean ``` public class PayMoney { private Integer pay_id;// 付款ID private Integer bat_id;// 批次ID private Integer pay_account;// 赊账 private Integer pay_pays;// 已付款金额 private String pay_state;// 状态 private Date pay_date1;// 日期1 private Date pay_date2;// 日期2 public PayMoney() { super(); } public PayMoney(Integer pay_id, Integer bat_id, Integer pay_account, Integer pay_pays, String pay_state, Date pay_date1, Date pay_date2) { super(); this.pay_id = pay_id; this.bat_id = bat_id; this.pay_account = pay_account; this.pay_pays = pay_pays; this.pay_state = pay_state; this.pay_date1 = pay_date1; this.pay_date2 = pay_date2; } 下面的tostring和getset就不贴了 ``` 原本只有一个date,因为老是找不到问题所以我自己改成了date1和date2但果然还是不行…… 看了好几天感觉是mapper的语句有问题……但是在orcal上运行时可以查询到的……这里就很费解了,希望大大们能帮帮忙解解惑学校项目时间要到期了T_T
springMVC 3.2 接收和返回json 中文乱码问题
折腾了一星期啦,springMVC处理含有中文的json参数乱码,按照网上的各种尝试,改配置的,自己写消息转换器的,各种尝试均失败,不知道哪位有实际经验供借鉴下呢 1、按照网上同行的说法改的配置: <bean id="requestMappingHandlerAdapter" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean> <mvc:annotation-driven/> 2、自己写的转换类 public class UTF8StringHttpMessageConverter extends AbstractHttpMessageConverter<String>{ public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); private final Charset defaultCharset; private final List<Charset> availableCharsets; private boolean writeAcceptCharset = true; private static final MediaType utf8 = new MediaType("text", "plain", Charset.forName("UTF-8")); /** * A default constructor that uses {@code "ISO-8859-1"} as the default charset. * @see #StringHttpMessageConverter(Charset) */ public UTF8StringHttpMessageConverter() { this(DEFAULT_CHARSET); } /** * A constructor accepting a default charset to use if the requested content * type does not specify one. */ public UTF8StringHttpMessageConverter(Charset defaultCharset) { super(new MediaType("text", "plain", DEFAULT_CHARSET), MediaType.ALL); this.defaultCharset = DEFAULT_CHARSET; this.availableCharsets = new ArrayList<Charset>(Charset.availableCharsets().values()); } /** * Indicates whether the {@code Accept-Charset} should be written to any outgoing request. * <p>Default is {@code true}. */ public void setWriteAcceptCharset(boolean writeAcceptCharset) { this.writeAcceptCharset = writeAcceptCharset; } @Override public boolean supports(Class<?> clazz) { return String.class.equals(clazz); } @Override protected String readInternal(Class<? extends String> clazz, HttpInputMessage inputMessage) throws IOException { Charset charset = getContentTypeCharset(inputMessage.getHeaders().getContentType()); return FileCopyUtils.copyToString(new InputStreamReader(inputMessage.getBody(), charset)); } @Override protected Long getContentLength(String s, MediaType contentType) { Charset charset = getContentTypeCharset(contentType); try { return (long) s.getBytes(charset.name()).length; } catch (UnsupportedEncodingException ex) { // should not occur throw new IllegalStateException(ex); } } @Override protected void writeInternal(String s, HttpOutputMessage outputMessage) throws IOException { if (this.writeAcceptCharset) { outputMessage.getHeaders().setAcceptCharset(getAcceptedCharsets()); } Charset charset = getContentTypeCharset(outputMessage.getHeaders().getContentType()); FileCopyUtils.copy(s, new OutputStreamWriter(outputMessage.getBody(), charset)); } /** * Return the list of supported {@link Charset}. * <p>By default, returns {@link Charset#availableCharsets()}. Can be overridden in subclasses. * @return the list of accepted charsets */ protected List<Charset> getAcceptedCharsets() { return this.availableCharsets; } private Charset getContentTypeCharset(MediaType contentType) { if (contentType != null && contentType.getCharSet() != null) { return contentType.getCharSet(); } else { return DEFAULT_CHARSET; } } protected MediaType getDefaultContentType(String dumy) { return utf8; } } 这些尝试都不行的,哪位遇到过呢,高分求助~
使用Springmvc开发微信公众号数据传输问题
返回给微信服务器的XML格式的字符串,发现在公网Linux服务器中,tomcat的catalina.out文件打印的该字符串少了<ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> 这几行标签,手机微信提示该订阅号无法提供服务,请稍后再试。 该问题找了好久都找不出原因。是springmvc的数据传输有问题吗? 我贴一下springmvc.xml配置,求帮忙解答!!~ <!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 --> <!-- 加载controller的时候,不加载service,因为此时事物并未生效,若此时加载了service,那么事物无法对service进行拦截 --> <context:component-scan base-package="org.jeecgframework.web.*,weixin.*"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" /> </context:component-scan> <!-- ApplicationContext --> <bean class="org.jeecgframework.core.util.ApplicationContextUtil"></bean> <!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射, 配置一个基于注解的定制的WebBindingInitializer,解决日期转换问题,方法级别的处理器映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="cacheSeconds" value="0" /> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 --> </list> </property> <property name="webBindingInitializer"> <bean class="org.jeecgframework.core.interceptors.MyWebBinding" /> </property> </bean> <!-- 默认的视图解析器 在上边的解析错误时使用 (默认使用html)- --> <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="3"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="contentType" value="text/html" /> <property name="prefix" value="/webpage/" /> <property name="suffix" value=".jsp" /> </bean> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="UTF-8"> <property name="maxUploadSize"> <value>104857600</value> </property> <property name="maxInMemorySize"> <value>4096</value> </property> </bean> <!-- Bean解析器,级别高于默认解析器,寻找bean对象进行二次处理 --> <bean id="beanNameViewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver" p:order="0"> </bean> <!-- Excel 处理 根据用户输入进行对象处理 --> <bean id="jeecgExcelView" class="org.jeecgframework.poi.excel.view.JeecgSingleExcelView" /> <!-- 方言 --> <bean id="dialect" class="org.jeecgframework.core.common.hibernate.dialect.DialectFactoryBean"> <property name="dbType" value="${jdbc.dbType}" /> </bean> <!-- 异常处理类 --> <bean id="exceptionHandler" class="org.jeecgframework.core.common.exception.MyExceptionHandler" /> <!-- 系统错误转发配置[并记录错误日志] --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="defaultErrorView" value="500"></property> <!-- 默认为500,系统错误(error.jsp) --> <property name="defaultStatusCode" value="404"></property> <property name="statusCodes"><!-- 配置多个statusCode --> <props> <prop key="error">500</prop> <!-- error.jsp --> <prop key="error1">404</prop> <!-- error1.jsp --> </props> </property> <property name="exceptionMappings"> <props> <!-- 这里你可以根据需要定义N多个错误异常转发 --> <prop key="java.sql.SQLException">dbError</prop> <!-- 数据库错误(dbError.jsp) --> <prop key="org.springframework.web.bind.ServletRequestBindingException">bizError</prop> <!-- 参数绑定错误(如:必须参数没传递)(bizError.jsp) --> <prop key="java.lang.IllegalArgumentException">bizError</prop> <!-- 参数错误(bizError.jsp) --> <prop key="org.springframework.validation.BindException">bizError</prop> <!-- 参数类型有误(bizError.jsp) --> <prop key="java.lang.Exception">unknowError</prop> <!-- 其他错误为'未定义错误'(unknowError.jsp) --> </props> </property> </bean> <!-- 拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**" /> <bean class="org.jeecgframework.core.interceptors.EncodingInterceptor" /> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/**" /> <bean class="org.jeecgframework.core.interceptors.AuthInterceptor"> <property name="excludeUrls"> <list> <value>loginController.do?goPwdInit</value> <value>loginController.do?pwdInit</value> <value>loginController.do?login</value> <value>loginController.do?checkuser</value> <value>repairController.do?repair</value> <value>repairController.do?deleteAndRepair</value> <value>cmsMenuController.do?index</value> <value>cmsArticleController.do?cmsArticleListShow</value> <value>cmsArticleController.do?datagridwx</value> <value>cmsArticleController.do?cmsArticleShow</value> <value>cmsController.do?goPage</value> <value>cmsController.do?getMenuList</value> <value>wechatController.do?wechat</value> <value>zpController.do?iscontinue</value> <value>zpController.do?saveZpPrize</value> <value>zpController.do?getZpPize</value> <value>zpController.do?saverecord</value> <value>zpController.do?ggl_new</value> <value>zpController.do?ggl</value> <value>zpController.do?zp</value> <value>zpController.do?goZhuanpan</value> <value>weixinCmsStyleController.do?upload</value> <value>newsItemController.do?newscontent</value> <!-- 保存用户 --> <value>userController.do?saveUser</value> </list> </property> </bean> </mvc:interceptor> </mvc:interceptors>
mybatis和springmvc 中sql语句遇到的奇怪问题
框架是springmvc+mybatis.mybatis版本是3.2.8 数据库是sqlserver2008r2 某个模块 xml中添加和修改没有问题, 查询语句遇到问题了。所有的select 返回对象或者list的时候报错。 ``` <select id="findClazz" resultType="clazz" parameterType="clazz"> select * from tc_department </select> ``` ### Error querying database. Cause: java.lang.NumberFormatException: For input string: "" ### The error may involve dingzhen.dao.ClazzDao.findClazz-Inline ### The error occurred while setting parameters ### Cause: java.lang.NumberFormatException: For input string: "" 这个是错误代码,把查询参数去掉。也抱着个错。 # **但是** ``` <select id="findClazz" resultType="int" parameterType="clazz"> select count(*) from tc_department </select> ``` 却正常运行。 列与clazz类对应正确。其他模块相同写法正常使用。
springMVC中 前台的数组参数怎么填装到实体类的某个属性中
前台是easyui的多选combobox getValues 方法可以取到一个数组 通过datagrid的queryParams传到后台 类似于这样 queryParam{ "ids":[111,222,333] } 问题来了, 后台的实体类中 接这个数组的属性应该怎么写 public class Authors{ private Integer[] ids ????? private String[] ids ????? private List<Integer> ids ???? private List<String> ids ???? private List<Object> ids ???? } 纯手打,求解答
SpringMVC绑定多个对象的集合
有一个javabean [code="java"]F{ String a; String b; int c; }[/code] 我希望提交给后台服务器的参数是一个列表。现在是通过 f[0].a="111",f[0].b="222",f[0].c=333 f[1].a="111",f[1].b="222",f[1].c=333 f[2].a="111",f[2].b="222",f[2].c=333 提交参数给后台。 问题是我使用的[color=red]springmvc注解方式[/color],那么怎样才能将这些参数在直接转化为一个List<F>的列表呢
SpringMVC入参多类型如何进行绑定
public R save( @RequestParam("menuIdes[]") List<String> menuIdes, @RequestParam("deptIdes[]") List<String> deptIdes, @ModelAttribute("role") SysRoleEntity role){ sysRoleService.save(role); return R.ok(); } ``` 我在后台获取不到list集合和role对象,请问前台如何组织json字符串和后台如何获取参数 ```
springmvc乱码疑惑
有如下代码:在点击URL方式的时候name参数的中文在后台可以正确显示,但是在浏览器直接输入中文的时候为什么后台就是乱码了[code="java"]<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>index</title> </head> <body> <a href="${pageContext.request.contextPath}/user/welcome?name=哈哈">URL方式</a> <form action="${pageContext.request.contextPath}/user/login" method="post"> <span>用户名</span><input type="text" name="username" /><br/> <span>密&nbsp;&nbsp;&nbsp;&nbsp;码</span><input type="password" name="password" /><br/> <input type="submit" value="登录" /> </form> </body> </html>[/code] Controller:[code="java"] @RequestMapping(value = "/welcome",method = RequestMethod.GET) public String welcome(ModelMap model,HttpServletRequest request){ String name = request.getParameter("name"); System.out.println("*********"+name+"*************"); model.put("name", name); System.out.println("*********welcome*************"); return "welcome"; }[/code]web.xml[code="java"]<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright : adobocode.com , 2010 --> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="WebApp_ID" version="2.4"> <display-name>springmvc</display-name> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>[/code]
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错误。请高手帮助啊!
springmvc sessionFactory is null
严重: Servlet.service() for servlet [spring2] in context with path [/Lbl] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException 说明:@resource和@annotional都不起作用。 网上的方法都试过了,不起作用 spring2-servlet.xml <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:oxm="http://www.springframework.org/schema/oxm" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <context:component-scan base-package="com.lbl.active" /> <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/> <bean id="bookXmlView" class="org.springframework.web.servlet.view.xml.MarshallingView"> <constructor-arg> <bean class="org.springframework.oxm.xstream.XStreamMarshaller"> <property name="autodetectAnnotations" value="true"/> </bean> </constructor-arg> </bean> <bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"> </bean> </beans> application.xml <context:annotation-config/> <!-- 自动扫描与装配 --> <context:component-scan base-package="com.lbl"></context:component-scan> <!-- 导入外部的properties--> <context:property-placeholder location="classpath:jdbc.properties"/> <!--配置session工厂 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- 配置数据库路径 classpath:WEB-INF\classes\hibernate.cfg.xml--> <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> <!-- 配置数据库c3p0连接池 dataSource写错导致bean创建异常错误信息属性值设置错误 --> <property name="dataSource" > <!-- dataSouce应该写成dataSource第三个错误 --> <bean class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 配置数据库信息 --> <property name="jdbcUrl" value="${jdbcUrl}"></property> <property name="driverClass" value="${driverClass}"></property> <property name="user" value="${user}"></property> <property name="password" value="${password}"></property> <!-- 其他配置 --> </bean> </property> </bean> <!-- 配置声明事物管理 采用注解方式--> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" > <property name="sessionFactory" ref="sessionFactory"></property> </bean> <tx:annotation-driven transaction-manager="txManager"/> </beans> web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Lbl</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicationContext.xml </param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <filter> <filter-name>openSession</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> <init-param> <param-name>sessionFactoryBeanName</param-name> <param-value>sessionFactory</param-value> </init-param> </filter> <filter-mapping> <filter-name>openSession</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>spring2</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring2</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> 出错的类 @Transactional public class DaoService<T> implements DaoLbl<T>{ @Resource private SessionFactory sessionFactory; private Class<T> clazz; @SuppressWarnings("unchecked") public DaoService(){ System.out.println("---1---->>>:"+this.getClass()); // System.out.println("----2--->>>:"+this.getClass().getGenericSuperclass()); //使用反射技术获得 T的真实类型 ParameterizedType pt=(ParameterizedType)this.getClass()// .getGenericSuperclass();//获取当前new的泛型父类类型 System.out.println("------->:"); this.clazz=(Class<T>)pt.getActualTypeArguments()[0]; //获取第一个参数的实际类型 System.out.println("class--->" + clazz); } protected Session getSession(){ // // String path="C:/Users/admin/workspace/Lbl/WebContent/WEB-INF/applicationContext.xml"; // ApplicationContext ac=new FileSystemXmlApplicationContext(path); // SessionFactory sessionFactory=(SessionFactory)ac.getBean("sessionFactory"); // System.out.println("00001113333333----000->"+ sessionFactory); // System.out.println("00001113333333----000->"+ sessionFactory.openSession()); // return sessionFactory.openSession(); // System.out.println("0000000->"+ sessionFactory.getCurrentSession()); try { return sessionFactory.getCurrentSession(); } catch (Exception e) { e.getStackTrace(); } return null; } }
spring+springmvc+mybatis环境搭建报错
## # application.xml spring配置文件内容: <!-- 引入jdbc配置文件 --> <context:property-placeholder location="classpath:config/jdbc.properties" /> <!-- 可通过注解控制事务 <tx:annotation-driven />--> <!-- 扫描注解类,否则找不到bean --> <context:component-scan base-package="com.zj.service"></context:component-scan> ## # springmvc-servlet.xml 文件内容: <!-- 启用spring mvc 注解 <context:annotation-config />--> <!-- 设置使用注解的类所在的jar包 --> <context:component-scan base-package="com.zj.controller"></context:component-scan> <!--创建jdbc数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${uname}" /> <property name="password" value="${pwd}" /> </bean> <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:com/zj/dao/*.xml"></property> </bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.zj.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- 完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> ## # LoginController.java package com.zj.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.zj.entity.UserInfo; import com.zj.service.LoginService; @Controller public class LoginController { private LoginService loginService; public LoginService getLoginService() { return loginService; } @Autowired public void setLoginService(LoginService loginService) { this.loginService = loginService; } @RequestMapping("/login") public ModelAndView login(String username,String password, HttpServletRequest request){ return new ModelAndView("login"); } @RequestMapping("/login2") public ModelAndView testLogin2(String username, String password){ UserInfo ui = new UserInfo(); UserInfo result = this.loginService.find(ui); System.out.println("用户名:"+result.getUsername()); // request和response不必非要出现在方法中,如果用不上的话可以去掉 // 参数的名称是与页面控件的name相匹配,参数类型会自动被转换 if (result==null) { return new ModelAndView("loginError"); // 手动实例化ModelAndView完成跳转页面(转发),效果等同于上面的方法返回字符串 }else{ return new ModelAndView("loginSuccess"); } // 采用重定向方式跳转页面 // 重定向还有一种简单写法 // return new ModelAndView("redirect:../index.jsp"); } } } ## # LoginDao.java package com.zj.dao; import com.zj.entity.UserInfo; public interface LoginDao { public UserInfo getUserInfo(UserInfo UserInfo); // public void addUserInfo(UserInfo UserInfo); // // public void updateUserInfo(UserInfo UserInfo); // // public void deleteUserInfo(int UserInfoId); } ## # LoginDao.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zj.dao.LoginDao"> <select id="getUserInfo" parameterType="com.zj.entity.UserInfo" resultType="com.zj.entity.UserInfo"> SELECT * FROM userinfo WHERE username=#{username} AND password=#{password} </select> </mapper> # 业务实现类LoginServiceImpl.java package com.zj.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zj.dao.LoginDao; import com.zj.entity.UserInfo; import com.zj.service.LoginService; @Service("loginService") public class LoginServiceImpl implements LoginService{ private LoginDao loginDao; public LoginDao getUserDao() { return loginDao; } @Autowired public void setUserDao(LoginDao userDao) { this.loginDao = userDao; } public UserInfo find(UserInfo userInfo) { return this.loginDao.getUserInfo(userInfo); } } ## # web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>pro</display-name> <!-- 不拦截静态文件 --> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/js/*</url-pattern> <url-pattern>/css/*</url-pattern> <url-pattern>/imgs/*</url-pattern> <url-pattern>/fonts/*</url-pattern> </servlet-mapping> <!-- Spring配置 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/applicationContext.xml</param-value> </context-param> <!-- Spring MVC配置 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 配置字符集 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app> # 最后是错误信息: Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.zj.dao.LoginDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 用测试类测试的时候没有问题,一启动tomcat就报错,求看看是哪里的问题,谢谢![![![图片说明](https://img-ask.csdn.net/upload/201512/22/1450795020_467185.png)图片说明](https://img-ask.csdn.net/upload/201512/22/1450795014_103343.png)图片说明](https://img-ask.csdn.net/upload/201512/22/1450794997_116981.png)
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载 点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。 ...
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体...
源码阅读(19):Java中主要的Map结构——HashMap容器(下1)
HashMap容器从字面的理解就是,基于Hash算法构造的Map容器。从数据结构的知识体系来说,HashMap容器是散列表在Java中的具体表达(并非线性表结构)。具体来说就是,利用K-V键值对中键对象的某个属性(默认使用该对象的“内存起始位置”这一属性)作为计算依据进行哈希计算(调用hashCode方法),然后再以计算后的返回值为依据,将当前K-V键值对在符合HashMap容器构造原则的基础上,放置到HashMap容器的某个位置上,且这个位置和之前添加的K-V键值对的存储位置完全独立,不一定构成连续的存储
c++制作的植物大战僵尸,开源,一代二代结合游戏
此游戏全部由本人自己制作完成。游戏大部分的素材来源于原版游戏素材,少部分搜集于网络,以及自己制作。 此游戏为同人游戏而且仅供学习交流使用,任何人未经授权,不得对本游戏进行更改、盗用等,否则后果自负。目前有六种僵尸和六种植物,植物和僵尸的动画都是本人做的。qq:2117610943 开源代码下载 提取码:3vzm 点击下载--&gt; 11月28日 新增四种植物 统一植物画风,全部修...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
Python 基础(一):入门必备知识
Python 入门必备知识,你都掌握了吗?
深度学习图像算法在内容安全领域的应用
互联网给人们生活带来便利的同时也隐含了大量不良信息,防范互联网平台有害内容传播引起了多方面的高度关注。本次演讲从技术层面分享网易易盾在内容安全领域的算法实践经验,包括深度...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程实用技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法,并会持续更新。
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
前言 GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 上周给大家分享了一篇10个让你笑的合不拢嘴的Github项目,而且还拿了7万+个Star哦,有兴趣的朋友,可以看看, 印象最深刻的是 “ 呼吸不止,码字不停 ”: 老实交代,你是不是经常准备写个技术博客,打开word后瞬间灵感便秘,码不出字? 有什么
推荐几款比较实用的工具,网站
1.盘百度PanDownload 这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风????) 不要去某站买付费的???? PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了 bejson网站 3.二维码美化 这个网站的二维码美化很好看,网站界面也很...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问