mysql 的 级联删除与级联更新 create table student( id int, departmentId int, foreign key(departmentId) references department(departmentId) on delete cascade ; ); 级联更新(如:某次须要更新了 department表的某一个id 号,那么其下的 student中的departmentId 跟着改变 ) foreign key(departmentId) references department(departmentId) on update cascade ; zuixin spring 使用注解 @Resource 能够省略 setter () getter 方法 采用的是 field(属性) 注入 Spring默认 @Service public class UserService{ } 等等 会自动建立 一个小写userSerivce, 可是 我测试 非 web 容器中 ,没有指定 @Service("userService") ,Spring却不存在此 bean , 缘由是 字母写错了,类 userService 写成 -------> ac.getBean("userService "); 即 类名 和 ac.getBean("userService "); 写的不同 1.error opening trace file: No such file or directory android api 的版本和模拟器的版本不一致致使的。我如今从新建立了一个项目,版本和运行的模拟器都选择同样的。结果不报这个错误了 2.Tomcat 不更新 所有jar包问题,删除lib 下面全部jar。 从新构建jar 3. Log4j 日志 不更新问题 , JavaEE 版本6 换成5 。 4. 空指针...... ------> 忘记new 对象,空引用即便用 此对象(或者 查询数据库返回null, 直接 set给 某一对象) 5. sl4j.api sl4j-log4j,log4j 注意版本的匹配 6.注意 配置 tomcat 的jdk和本身的一致 7. 不要给 sessionFactory起名 8. hibernate映射的时候实体 老是写错 ,和配置文件里面对应的 必定不要忘了 getter setter方法 ;特殊属性不须要 9.整合 hibernate找不到 class或 不能解析的(先看 本身hbm.xml中 <class name="Topic" table="topic">是否是写错,写成小写了 ) 10. spring 容器: 在普通的Java程序中 也能够直接使用 spring的注解方式(可是千万不要忘记 了改变spring的扫描包 ) 还有就是 ,1. spring在web 容器启动时候 中能够本身实例化 2. 普通Java程序中须要经过ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); 注解后 ,就能够直接 Install installer = (Install) ac.getBean("install");获得该对象了 注解没有设置扫描包 : spring 会包 找不到 class异常 实例化Spring容器,不管WEB容器仍是JavaSE 扫描的仍是配置的 对象都会被实例化 #==================== 可是 JavaSE中,JUnit测试用例 发现 @Resource注入根本无效,想在一个类里面用如 SessionFactory或者UserService之类的 @Resource private UserService userService; @Resource private SessionFactory sessionFactory; //## userSerivce.sayHello(); 空指针异常 (即没法注入 ) //## userService = (UserSerivce)ac.getBean("userSerivce"); userSerivce.sayHello(); //能够 自我判断: 我认为主要 @Resource不管 是javaSe仍是Web都是能够注入的 可是:问题,经过ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); 须要手动 经过 getBean("beanName");获得 已经实例化的容器对象 Java Application 运行 在 jre虚拟机中,没法自动关联注入 (由于jre没有被Spring管理) 可是WEB容器 web.xml 设置有Spring的监听器,Controller已经被Spring管理 (Tomcat,入口是Controller)运行时候却能够 在 Controller里面直接使用 注入的属性如UserService等等 例子1: public class HibernateTest { /* ## @Resource xxx //此类没有被Spring 管理,此注解无效(由于 HibernateTest对象都没有被建立,都不知道往哪里注入哦,因此咱们见到可使用的都是 类上面有注解,属性也有注解(对象得和属性关联才行 )) private TestService testService ; */ @Test public void test() { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); ## TestService service = (TestService) ac.getBean("testService"); //去Spring容器找实例化过的对象 OK service.saveUser(); } #==================== 例子2: @Component //##1 public class HibernateTest { @Resource //##2 private TestService service; // ##2 已经 被注入 //##1 里了 @Test public void save(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); HibernateTest hibernateTest = (HibernateTest) ac.getBean("hibernateTest"); hibernateTest.service.saveUser(); //(1)正确 service.saveUser(); //(2)报错 /** 重点解释 这里为何会报错:很重要 。(WEB中或者Spring容器的实例化在其余类里面[不论怎样,第一层(class上面没有注解即没有被Spring管理)的调用都须要使用getBean("")方式 ] ) //在本身的类里调用 service.saveUser(); TestService service 尚未被Spring容器指向 testService这个对象. //故报空指针异常 */ } } 例子3: javaSE 程序哦 @Service @Transactional public class TestService { @Resource SessionFactory sessionFactory; public void saveUser(){ Session session = sessionFactory.getCurrentSession(); // 只有事务管理器存在才能够,@Trasactional注解 User user = new User(); user.setUsername("王立"); user.setPassword("124"); session.save(user); } } 例子4 : @Component // 注意这里不要配置为@Controller,由于咱们在applicationContext.xml中已经配置@Controller注解不被扫描 public class HibernateTest { @Resource SessionFactory sessionFactory; @Transactional public void save(){ Session session = sessionFactory.getCurrentSession(); // 这里不能用getCurrentSession();// 只有事务管理器存在才能够,@Trasactional注解 for(int i=0;i<50;i++){ User user = new User(); user.setUsername("王立"); user.setPassword("124"); session.save(user); } } public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); HibernateTest hibernateTest = (HibernateTest) ac.getBean("hibernateTest"); hibernateTest.save(); } } 11. 删除表时候 注意级联 问题 , 如 forum topic reply ; 1.先删除 reply 而后删除 topic 而后删除 forum 2.反过来删除的话: 如删除 forum ,必须设置级联删除,不然报错 .. 12. ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");// 注意,这里 spring在 初始化时候(无论是J2SE 仍是JavaEE,都会把扫描包里面注解的类实例化,即调用Service....Action等 的构造方法) 13. "FROM "+clazz.getSimpleName()+"WHERE id IN(:ids)") 拼接 hql语句 不要 忘记 空格 fromForum from Forum 错误: ----------- 》node to traverse cannot be null! 14. 泛型 class BaseAction <T> { public BaseAction() { try { // 经过反射获取model的真实类型 ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass(); Class<T> clazz = (Class<T>) pt.getActualTypeArguments()[0]; // 经过反射建立model的实例 model = clazz.newInstance(); } catch (Exception e) { throw new RuntimeException(e); } } } public class ForumAction extends BaseAction<Forum> { // 从这里看出 通常在继承状况下 制定 T的类型 且 仍然 是 BaseAction<Forum> --> BaseAction<T> //在那个类上面指定 ,那个类里面的方法 就适应 } 15. 泛型 T 始终 报错 java.lang.Class cannot be cast to java.lang.reflec 范式应该在编译的时候就指定,而不是运行时。 类级别 的 很像 容器 List<String> list = new ArrayList<String>(); list.add(T t); -------> list.add("必须是String类型");--> 本身指定 16. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'topicService' defined in file [D:\apache-tomcat-7.0.54\webapps\Fenye\WEB-INF\classes\com\wl\fenye\service\TopicService.class]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.wl.fenye.service.TopicService]: Common causes of this problem include using a final class or a non-visible class; nested exception is net.sf.cglib.core.CodeGenerationException: java.lang.ClassCastException-->java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType 此错误 缘由仍是 泛型 T 的问题 , 除了 必须使用继承 的方式制定 T 的类型(在编译阶段 ), 且 必须 Action 调用的时候 也制定 才能够 @Resource // 注入后Service 不须要在写 setter getter 方法 private ForumService<Forum> forumService; @Resource private TopicService topicService; // ------------------ > 错误 !!!!!!!!!!! 17. 这个错误 感受 有点奇怪 --------> abstract BaseDaoImpl implements BaseDao 时候 ,里面的方法必须 加上 @Override 不然 下面 各方面的继承 居然不认 --------> 注意 18. 严重: Servlet.service() for servlet [CartAction] in context with path [/ShopingCart] threw exception java.lang.NullPointerException at com.wl.shopping.Action.CartAction.doGet(CartAction.java:28) cartService.findAll(); //说明没有 new对象 即 使用此方法 private CartService cartService; private CartService cartService = new CartService(); 普通的jsp编程 中忘记 new对象 (混淆 了 ssh 编程 ,ssh中 被spring管理后就不须要 实例化 了 ) 19. 注意 getcurrentSesison()的 使用 ,必须在配置 @Transactional注解(时候,事务管理器存在状况下才可使用) 也就是 Service被Spring管理 ,Service里面注入了 SessionFactory, 且 被@Transactional注解 public class SpringTest { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); @Test public void saveUser(){ SessionFactory sessionFactory = (SessionFactory) ac.getBean("sessionFactory"); User user = new User(); user.setPassword("1234"); user.setUsername("wangli"); sessionFactory.openSession().save(user); 20. Java public class UserServiceImpl extends DaoSupportImpl<User> implements UserService {} 不要写反 --------------> public class UserServiceImpl implements UserService extends DaoSupportImpl<User> {} 21. private Department department = new Department(); // ----------->注意,返回这里的时候,除非是从数据库中查询则会返回一个对象,不然必定要本身实例化,且不须要 setter getter方法,不适用ModelDriven则需setter getter 22. 因为ActionContext.getContext().put("forumList",forumList); //forumList在遍历的时候 <c:forEach var = "forum" <a href="forum_show.action?id=${id}" /> ---->id 是能够直接从 forum中取出来的. 23.分页时候,一直显示在第一页不变是由于忘记在Action中 pageNum pageSize生成 getter setter方法 24. 作权限时候,比较复杂: 1. 准备权限的数据库数据,映射实体: user, role(能够暂时使用admin测试,后面再分配) ,privilege 2.使用监听器初始化 ,把顶级权限 数据放入application中 3.left.jsp 中遍历topPrivilege; 并增长user实体方法,hasPrivilegeByName(); 4.拦截器的使用 25.下面的代码片段: xmlns="http://www.w3cschool.cc" 规定了默认命名空间的声明。此声明会告知 schema 验证器,在此 XML 文档中使用的全部元素都被声明于 "http://www.w3cschool.cc" 这个命名空间。 一旦您拥有了可用的 XML Schema 实例命名空间: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 您就可使用 schemaLocation 属性了。此属性有两个值。第一个值是须要使用的命名空间。第二个值是供命名空间使用的 XML schema 的位置: xsi:schemaLocation="http://www.w3cschool.cc note.xsd" 26. Cannot forward after response has been committed if(code.toLowerCase().equals(sessioncode.toLowerCase())){ //、 --------------->数据库中验证 User u = new User(); u.setUsername(username); u.setPasswd(passwd); u = userSerivce.checkUser(u); // -------->给 u 从新赋值 if(u!=null){ request.getSession().setAttribute("loginuser", u); }else{ request.setAttribute("msg", "您登录的用户名或密码错误!!"); response.sendRedirect("/eshop/index.jsp"); return ; //-------------->注意这里必定要加上return,不然代码还会向下执行 } request.getRequestDispatcher("/WEB-INF/jsp/userAction/list.jsp").forward(request, response); }else{ request.getRequestDispatcher("/WEB-INF/jsp/userAction/error.jsp").forward(request, response); } 27.String sql = "insert into goods(goodsName,goodsPrice,goodsAllNum,publisher,photo,goodsIntro) values(?,?,?,?,?,?)";不要写成 ------> String sql = "insert into goods(goodsName,goodsPrice,goodsAllNum,publisher,photo,goodsIntro) values('?','?',?,?,?,?)" 之类的 28. sqlHelper 中 ------>使用 public static ResultSet executeQuery(String sql,Object[] parameters) 而不用 String parameters[]; 29. 查询使用方法 executeQuery, insert,update 等用 executeUpdate(); 30. 使用mysql 查询总数量时候,注意必定要 先 // 只有一条记录 coutRs.next(); ResultSet.next(); -------> count = coutRs.getObject(1); 31. 文件上传所出现的问题: <form action = "Goods_add" method ="post" enctype="multipart/form-data"> made:<input type="text" name="made"></input> goodsName:<input type ="text" name="goodsName"/><br/> goodsPrice:<input type ="text" name="goodsPrice"/><br/> goodsAllNum:<input type ="text" name="goodsAllNum"/><br/> file:<input type ="file" name ="photo"/><br/> goodsIntro:<textarea rows="5" cols="5" name="goodsIntro"></textarea> <input type="submit" value = "提交" /> </form> -------------> enctype="multipart/form-data" 表示使用二进制流的形式,后台request.getParamenter();彻底获取不到值 了 方法: 直接在 action? 后面附带参数或者 使用JavaScript动态在action后面赋值参数 32. java.sql.SQLException: Can not issue data manipulation statements with executeQuery(). 缘由: 插入数据 sql语句错误 , executeQuery改成executeUpdate() 33. EL 表达式 取不到值session中user 值 的问题 : if(!rs.next()){ System.out.println("-------->无忧此用户<--------"); return null; } rs.beforeFirst(); // 游标没有重置 ,致使原本根据用户名和密码查询到一个用户,却因为rs.next(); 而后第二次rs.next(); 致使 rs.getInt(1); rs.getString(2); 等等 都是null 值 while(rs.next()){ user.setUserid(rs.getInt(1)); user.setUsername(rs.getString(2)); user.setTruename(rs.getString(3)); user.setPasswd(rs.getString(4)); user.setEmail(rs.getString(5)); user.setPhone(rs.getString(6)); user.setAddress(rs.getString(7)); } 34. java.lang.NoSuchMethodException: com.wl.mini.UserAction.{1 }() <action name="userAction_*" class="userAction" method="{1 }"> 改成--> 连空格都不能有 <action name="userAction_*" class="userAction" method="{1}"> 35. <c:forEach var="goods" items="${mycart.cart }"> <tr class="mytr"> <td class="goodsId">${goods.goodsId }</td> <td>${goods.goodsName }</td> <td>${goods.goodsPrice }</td> <td>${goods.goodsNum }</td> <td><button onclick="removeGoods()">删除</button></td> <td><button>修改数量</button></td> <td><button>更新数据</button></td> </tr> </c:forEach> 在遍历时候 没此迭代的数据 千万不要写成 id="" (不然id就不惟一了) 写成 class 36. else if(flag.equals("logout")){ System.out.println("--------------->注销admin登陆"); request.getSession().removeAttribute("user"); response.sendRedirect("admin"); // 重定向到此 action中 // 注意下面的不能再次使用请求转发了,不然参数仍然带着,继续登陆 // request.getRequestDispatcher("/WEB-INF/jsp/admin/login.jsp").forward(request, response); } 37.. frameset 遇到的问题: 这是一个常常遇到的问题,特别是在用frame框架的时候,解决办法也很简单: window.location 改成 top.location 便可在顶部连接到指定页 或window.open("你的网址","_top"); Response.Write("<script language='jscript'>window.open('" + Request.QueryString["url"].ToString() + "','_top');</script>"); 38. tomcat7 存入中文cookie时候回报错; java.lang.IllegalArgumentException: Control character in cookie value or attribute. 还上Tomcat7以后再次测试,异常终于重现,经过调试发现因为在登录的时候须要使用Cookie来保存用户的登录信息,而Tomcat7中cookie对中文的支持不够好,直接将中文字符的登录名写入cookie时会引起异常,因此须要先转码,才不会出现上述的异常。 正常写入不算完事,由于此时后台解析cookie值的代码取到的值是乱码,使用cookie是没法登录的;这就须要在后台验证cookie登录时,得先将取获得的cookie值转成UTF-8格式以后在对比数据库确认登录信息是否正确。 页面JS转码:encodeURI('你是'); 后台Java解码:URLDecoder.decode("%E4%BD%A0%E6%98%AF","UTF-8"); 39. 问题: mysql 数据删除后 不会从最大自增的问题; 删除的数据id 空着不用; 40. 启动项目时报如下异常 严重: Exception loading sessions from persistent storage java.io.EOFException 遇到上述异常,删除Tomcat里面的work\Catalina\localhost下的项目文件内容便可解决. 缘由是因为项目测试中class文件或者其它文件更新过频繁。 以前常常碰到页面修改后,从新发布的项目页面仍是原样,无论删掉tomcat/webapps/发布的项目仍是从新部署,都没法显示修改后的效果, 可是其余页面修改后又能显示。真是莫名其妙。 如今才知道是tomcat的问题,一样删除Tomcat里面的work\Catalina\localhost下的项目文件内容便可解决. 41. 对比 struts2 和 eshop(jsp 版本)程序中的分页状况 ; 看来 使用 push(pageBean的方式);只能使用struts2的 OGNL表达式了 request.setAttribute("pageBean",pageBean); // 则可使用 jstl 遍历比较方便 42. No result defined for action and result input Posted on 2009-01-06 21:41 沙漠中的鱼 阅读(23055) 评论(20) 编辑 收藏 所属分类: 开源框架 这是struts2的一个拦截器报的错误,当你的form中的数据有问题,好比说 <input type="text" name="receiverLoginID" value="<%=name%>"/> 当 name值为NULL时,就出这个错了,因此你能够在当前页面加入如下标签 <div style="color:red"> <s:fielderror /> </div> 它就会显示拦截器的错误,并在struts的XML中对应action里加如 <result name="input">/AddProducts.jsp</result> 让他把错误返回到该页面就能够了 struts2中默认的是若是错误发生就跳转到input 我常犯得错误是: 工具使用 value=${topic.id } 没有 " "; id:<input type="hidden" name="id" value="${topic.id }"/> 这种错误经常是表单 数据有误 43. java.lang.OutOfMemoryError: PermGen space 内存溢出了 preferences ------ java ---> installJres ------> edit ->设置参数 在Eclipse中的话设置jvm参数便可 -Xms 512m -Xmx 512m 44. <s:form action="forum_show?id=%{id}"></s:form> 不能写成 <s:form action="forum_show?id=${id}"></s:form> // struts2 标签体里面 不支持 EL表达式 <form action="forum_show.action?id=${id}" method="post"> </form> 45. 内存溢出 jre里面配置 便可 -Xms512m -Xmx512m 46. User user = userService.getById(model.getId()); user.setAvatar(getUploadFileName()); // 把名字存入数据库 , 注意,更新数据,必定须要先从数据库中取出来,传过来的model并不能修改更新 userService.update(user); return "toList"; } 47. strut2 上传文件 File upload, 不须要 File upload = new File(); // 不需 实例化,可是上传时候 必定不要 和实体User ..等的字段如 String photo, 而上传文件 <input type="file" name="photo" 重名不然出错 48. String root = ServletActionContext.getServletContext().getRealPath("/images/user_photo"); // 注意获得的是目录/images/user_photo 和/images/user_photo/同样的结果 49. 关于eclipse buildpath的jar包不能复制到tomcat lib下的问题 建了一个web项目,须要引入mysql的jar包,用buildpath方式引入到项目,启动tomcat怎么也不能把这个jar复制到tomcat的lib目录下,因此确定不行的,只能手工复制到lib中,后来找到一个解决方法。 项目上点击右键--》properties--》DeploymentAssembly--》选择你要复制到lib下的libraries就行 50. SpringMVC 的标签库 也能够回显 如表单标签 ,同struts同样 如 : <form:form action="emp" method="POST" modelAttribute="employee"> <form:input path="lastname"/> // 至关于 <input type="text" name="lastname" value="${employee.lastname}"/> jstl 没有此属性,不会报错,顶多不显示 <form:input path="password"/> </form:form> // 这些标签会回显 ,可是注意了,和struts2同样,这些属性 -->存在才行 Action 中 !! ActionContext.getContext().put("employee",employee); Controller map.put("employee",employee); 51.. Android开发出现的错误 ,老是报空指针,缘由是 低级的,把setContentView(R.layout.two); 放在了 Button button实例化的 后面 setContentView(R.layout.two); Button spotBtn = (Button) findViewById(R.id.showSpot); Button bannerBtn = (Button) findViewById(R.id.showBanner); 52. junit Test 必须有一个 默认的无参构造函数 53. // InputStream fis = Main.class.getClassLoader().getResourceAsStream("rule.properties"); InputStream fis = new FileInputStream("src/rule.properties"); 这两个文件的路径是不一样的 ,一个在 bin 下面,一个在 src下面 54. 本身编写的爬虫程序 ,发现个别网站采集不了,缘由是 可能网站的防盗链,经过非本站跳转访问的连接所有跳转 到错误页面,方法: httpGet = new HttpGet(url); httpGet.setHeader("Referer","http://baiduyun.57fx.cn/album-detail-id-26796.html"); HttpResponse httpResponse2 = httpclient.execute(httpGet); 加上头信息 便可,网站必须 有来源页.访问前的网页 55.The request sent by the client was syntactically incorrect. SpringMVc 参数问题,表单对应字段如 <input type="text" name="age" value="aa"/>错误!! 不能将 字符串付给 控制器中 POJO User的 int age,(改成Integer应该没有错,Integer接受字符串 "aa" 应该被变为NULL接收了 ) 56. 数据库问题,insert into user(name,age) values("wangli","18"); 其中 name varchar(20),age int 类型 测试发现jdbc和mysql控制台执行此语句都成功了,缘由是数据库中会自动转换String类型为 其 设置的字段。可是不能写成 insert into user(name,age) values("wangli","18abc");之类的,不然转换出错了! 这种现象 很是相似 Struts2 和SpringMVC中(内置)类型转换器的做用 55. java 根据 url 读取网页内容 遇到403问题 分类: JAVA 2014-11-22 15:17 693人阅读 评论(0) 收藏 举报 [java] view plaincopy在CODE上查看代码片派生到个人代码片 URL url = new URL("****************"); StringBuffer html = new StringBuffer(); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestProperty("User-Agent", "Mozilla/31.0 (compatible; MSIE 10.0; Windows NT; DigExt)"); InputStreamReader isr = new InputStreamReader(conn.getInputStream(),"utf-8"); 设一下请求属性就好了: [java] view plaincopy在CODE上查看代码片派生到个人代码片 conn.setRequestProperty("User-Agent", "Mozilla/31.0 (compatible; MSIE 10.0; Windows NT; DigExt)"); 56. 小问题,jsoup读取网页源代码,提取后,不知道为何都把<br/>换成了<br>,虽然正确,可是生成PDF的话,却不能生成,由于其严格的形式 连<img 标签都被它修改,操蛋的事情<img ../>被修改成<img ..> ,fuck 57. 在使用本身的字符串截取时候,遇到 忽然不能截取的状况,可能缘由就是本身 给字符串加上+\r\n的缘由,在没有写入文件中前,我直接用正则匹配此字符串,是截取不了的,蛋疼的错误都被我遇到了 反过来再次从写入的文件中读取后再次截取,估计又成功了。 while((line=reader.readLine())!=null){ html.append(line+"\r\n"); } jiequ = matcher.group(0); // 0 就表示第一个 匹配到的字 URL url = new URL("http://blog.csdn.net/lmj623565791/article/details/37992017"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestProperty("User-Agent", "Mozilla/31.0 (compatible; MSIE 10.0; Windows NT; DigExt)"); InputStream in = conn.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in, "utf-8")); String line = ""; StringBuffer htmlbuffer = new StringBuffer(); while((line=reader.readLine())!=null){ htmlbuffer.append(line+"\n"); //------------------->zhuyi ,dont't \r\n le } String html = htmlbuffer.toString(); 这个问题最终仍是不能解决,只能换成httpclient了 58. Android 使用HttpClient 中遇到的问题 1.主线程里面不能链接网络 2.使用handler时候,注意 Looper.prepare(); ... handler ... Looper.loop(); 3. 启动 含 handler 的 子线程 start (); 59. 下面将介绍TextView实现滚动的三种方式: 一、嵌套在ScrollView或者HorizontalScrollView中 垂直滚动: <scrollview android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="vertical"> <textview android:text="..."/> </scrollview> 水平滚动:使用标签<horizontalscrollview></horizontalscrollview> 二、设置ScrollingMovementMethod 代码中添加: TextView.setMovementMethod(new ScrollingMovementMethod()); XML中配置: android:scrollbars="vertical" 三、使用Scroller来自定义TextView 4.小显示条 Toast显示时候,别老是忘记写 .show();方法 60. jar 包 版本问题 error at ::0 can't find referenced pointcut myPointcut 错误缘由:若是你用的JDK版本是1.6的话,而引用的aspectjrt.jar是spring-2.0中包含的jar包的状况下就会报这样的错误。 解决方法:就是下载最新的aspectjrt的jar包便可,或者使用spring3.0中的包!在这边我使用的aspectjrt.jar竟然是1.1的 因此出错了 改成aspectj最新版aspectj就没问题了 61.测试发现,某个方法里面没有对于异常没有 直接处理的,不管在哪里抛出的,当前方法都会直接中止掉,包括 try catch{throw new RuntimeException()} 可是finally{代码还会执行} 62. runtime异常是运行是异常,若是抛出runtime异常,程序会中止运行,通常异常抛出程序不会中止, 甚至有事若是程序作了try catch 处理,catch块里是空的,即便程序发生异常,也会继续运行, 且不能发现程序发生异常,因此在写程序的时候不建议写空的catch块,不便于程序的维护; 而runtime异常一旦抛出程序会即刻中止运行 若是 咱们 try { File f = new File("H:/test.jsp"); FileInputStream fis = new FileInputStream(f); } catch (Exception e) { throw new RuntimeException("文件没有找到"); } System.out.println("------>此句不会再次执行"); 运行时异常 若是在函数内被抛出,在函数上不须要声明。 不声明的缘由:不须要调用者处理,运行时异常发生,已经没法再让程序继续运行,因此,不让调用处理的,直接让程序中止,由调用者对代码进行修正。 Runtime exception,也称运行时异常,咱们能够不处理。 当出现这样的异常时,老是由虚拟机接管。好比:咱们历来没有人去处理过NullPointerException异常, 它就是运行时异常,而且这种异常仍是最多见的异常之一。 63. hibernateValidater 中的 @NotNull无效,使用@NotEmpty代替 @NotEmpty(message="用户名不能为空!!") 64. 一直出现一个很蛋疼的问题,Hibernate忽然不能自动更新表和建立表了 缘由: @Lob @Column(name="longContent", columnDefinition="CLOB", nullable=true) // mysql 可能没有这个字段 clob的缘由吧 private String longContent ; 可是 @Lob @Column(name="pics", columnDefinition="BLOB", nullable=true) //可省略,可是不指定 根据第一次生成类型,多是 shortblob blob longblob @Basic(fetch = FetchType.EAGER) private byte[] pics ; //图片文件 却能够 65. SpringMVC @requestBody 返回字符串乱码的解决方法 缘由: 字符串转换和对象转换用的是两个转换器,而String的转换器中固定了转换编码为"ISO-8859-1" 1.修改 <mvc:annotation-driven>为 <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> 2.方法二: 亲测: @ResponseBody //Response Headers Content-Type:application/javascript(js文件) Content-Type:text/html;charset=utf-8 @RequestMapping(value="/testJson",produces="text/html;charset=utf-8") // produces 结果,产品 (这个注解的属性至关于给Response设置返回信息,而@Response注解没有属性能够设置,故只有在这里设置了) public String testJson() throws JSONException{ System.out.println("--------->testJson-org"); JSONObject json = new JSONObject(); JSONArray jsonArray = new JSONArray(); // json 的格式 很相似 Java的Map 集合 ,故能够方便的 转换 JSONObject object1 = new JSONObject(); object1.put("name", "王立"); object1.put("password", 1234); JSONObject object2 = new JSONObject(); object2.put("name", "张华天"); object2.put("password", 124551); jsonArray.put(object1); jsonArray.put(object2); json.put("users", jsonArray); System.out.println("------------>"+json.toString()); return json.toString(); } 注意返回字符串就用这种方法就能够了 测试 : 虽然SpringMVC支持原生 request,response 可是使用 public String testJson4(HttpServletResponse response,Writer writer) throws JSONException, IOException{ response.setContentType("text/html;charset=utf-8"); ... writer.write(jsonStringer.toString());始终解决不了乱码问题;Fuck;不要令 本身那么变态 66. 出现找不到类 通常不是少 jar,就是jar冲突 如: hibernate-jpa-2.1-api-1.0.0.Final.jar 和j2ee6 library中的javax.persistence.jar冲突 一直运行都 报错,可是最后我把 j2ee6 library remove而后从新引入,又不报错了,不能说什么,只能说犯抽. 个人运气真是无语形容了,Fuck 这两个包使用的是jpa的注解(如@Entity @Table等等 ) 67. 我使用最新版hibernate的问题,里面包含了不少了,不在须要sl4j-log4j.jar sl4j.api.jar 只需log4j便可 估计hibernate里面已经有处理日志的类了 68. 故,使用jar包,为了安全,咱们一个也不要用myeclipse的,连javaee1.6 也不要 69. 测试发现 jsp 的pageEncoding="utf-8" 指定的是文件的编码格式(程序也会以此种格式编译) 若是 pageEncoding="utf-8"格式和 文件的编码格式不一致也会报错,使用myeclispe能够自动转换 70. import org.springframework.transaction.annotation.Transactional; 要相信本身,若是认为本身实在没有错 就须要看 包 是否导入错误了 甚至注解导入错误了,好比我在hql查询 时候,彻底正确可是查询结果一直为null 原来是不当心导成 javax.persistence.Transactional (但我发现导成这个平时也没错啊,只有一个测试出错,奇怪) 71.最蛋疼的 bug,哎,终于找到了,不细心啊 AOP的罪过 发现1: 我配置了AOP,拦截的方法正好是com.gs.oa.service.PrivilegeService.findTopList()方法 ,然而 AOP里面都没有写返回值,这是很是不对的,AOP把将要 return的 "返回值" 直接扔掉了 <aop:pointcut expression="execution(public * com.gs.oa.service.*.*(..))" id="pointcut"/> 发现2:只有在PrivilegeService类里面写的方法才被拦截到 ,父类继承的方法 都没有被拦截 72. QQ侧滑 使用 SlideMenu开源组件时候,须要删除咱们 创建项目的 android-support-v4.jar包 由于,开源组件里面已经有一个了 73. 注意 咱们登陆的时候 放入session.setAttribute("user",user); user 不要设置 id值哦,不然 ${user.id } 登陆后一直都不会为null Struts2这点比较好,${id} 只从值栈中取出 request域中 @RequestMapping(value="/edit",method=RequestMethod.POST) public String edit(User user){ System.out.println("-------更新-------"); User u = userService.getById(user.getId()); u.setUsername(user.getUsername()); u.setPassword(DigestUtils.md5Hex(user.getPassword())); userService.update(u); return "redirect:/user/list"; } <form action="user/${user.id==null?'add':'edit' }" method="post"> <input name="id" type="hidden" value="${user.id }"/> <input type="hidden" name="_method" value="${user.id==null?'PUT':'POST' }"/> <input type="text" name="username" value="wangli"/> <input type="password" name="password" value="123"/> <input type="submit" value="提交"/> </form> 74. create table user(id integer primary key autoincrement,name varchar(20),blognum int) 测试发现 : autoincrement 只能写在 integer类型上面,其余类型int也报错,注意 int 类型放在主键上面也不会自动增加 类型声明为id integer primary key 就会自动增加,无需写 autoincrement了 测试发现 sqlite select Name from user; 和 select name from user; 结果同样 ,故字段和mysql同样是不区分大小写的 76. 查询出来的cursor的初始位置是指向第一条记录的前一个位置的 cursor.moveToFirst()指向查询结果的第一个位置。 通常经过判断cursor.moveToFirst()的值为true或false来肯定查询结果是否为空。cursor.moveToNext()是用来作循环的,通常这样来用:while(cursor.moveToNext()){ } cursor.moveToPrevious()是指向当前记录的上一个记录,是和moveToNext相对应的; cursor.moveToLast()指向查询结果的最后一条记录 使用cursor能够很方便的处理查询结果以便获得想要的数据 77. handler.post(new Runnable() { run(){ 里面方法等同于主线程,故这里不要访问网络 } 78. 解决第三方 lib 导出 v4包重复的解决办法 :能够删除本身的,也能够 复制第三方lib下面的而后 粘贴覆盖 本身的 便可