当前位置: 首页 > news >正文

2013年工作中遇到的20个问题:141-160

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

141.Tomcat启动时,提示没有找到某个类NoClassDefFoundError.
Eclipse源文件中,确实存在。

解决方案:选中Tomcat,右键-Clean,清除(Clean)Tomcat下的资源。

142.写js的时候,经常遇到兼容性问题。
今天在使用一个公司内部人士写的组件时,IE下又遇到问题了。
请他来帮忙解决,IE下调试快捷键是F12。有了提示,解决就方便多了。
IE不允许直接修改button的type属性。

143.Spring发邮件
Spring3.1.1 不需要配置spring-context-support

Spring3.2.3必须手动配置

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>3.2.3.RELEASE</version>
        </dependency>

144.Mybatis中 #{name}表示字符串
   $原样输出 order by
   
   String in ="1,2,3";
   
   select * from User where id in(${in})
   --- select * from User where id in(1,2,3),即使是字符串,也不加引号
   select * from User where name = #{name}
   ---select * from User where name = 'FansUnion'
   select * from User where id = #{id}
   ---select * from User where id = 20
    
   我的理解是:$一定是原样输出,而#会自动去判断,如果是字符串就加'',int就不加''。

145.内网与外网提交代码的技巧
公司内部SVN地址是:Ip形式的,192.168.1.126
外网SVN地址是:域名形式的,如miaozhen.com

在外网提交代码的技巧是,配置host,让miaozhen.com解析到,192.168.1.126。
这样,SVN提交代码的地址就不用切换了。

我是听1个同事说的,还没有尝试过哦。


146.做网站时,顶层菜单一般是一致的。
最开始学习时,使用的是<jsp:include page="header.jsp"/>
后来,使用了Sitemesh。

我的理解是在每一个页面,手动使用jsp:include导入菜单,
而Sitemesh是动态拦截每个需要的页面,导入菜单。

除了导入菜单,也可以在<head></head>中导入js、css等。

147.表名大小写
Windows下MySQL表名不区分大小写的。
Linux下MySQL表明是区分大小写的。

(根本原因应该是WIndows操作系统的文件名不区分大小写,Linux文件名区分。)

148.Tomcat部署的项目访问路径
项目名:FansUnion
Eclipse工程中的文件夹 Servers->Tomcat4FansUnion at localhost-config->Server.xml中有如下配置,
<Context docBase="CMS1.0" path="/FansUnion" reloadable="true" source="org.eclipse.jst.jee.server:FansUnion"/></Host>

访问路径为:http://localhost:8080/FansUnion

如果把path改为"/",则访问路径变为:http://localhost:8080/

(FansUnion项目部署在Webapps/FansUnion或类似的目录下,并非在webapps/ROOT目录下)


修改path的另外一种方式是:选中项目名-右键-Properties-Web Project Settings,修改Context Root的值,
“/”或者"/FansUnion"等。

(记得要手动清除已经部署的项目,以免出现问题。)


访问路径,不带项目名称的另外一种方式是,把项目部署到Tomcat-webapps-ROOT目录下。

149.导入css、js等经常遇到路径问题,找不到。
一种解决方案是 使用Spring等框架的标签,如
<script src="<s:url value='/js/tabColor.js'/>" type="text/javascript"> </script>

我觉得这种办法之所以有效,是因为使用了绝对路径,而非相对路径。

150.Maven工程,JUnit单元测试时的classpath问题。
Maven项目结构
src/main/java
src/main/resource

src/test/java
src/test/resouce

src/test/java 文件夹下的程序指定classpath,首先在src/test/java和src/test/resouce下寻找资源文件,
如果没有找到,再去src/main/java和src/main/resource下寻找资源文件。

而src/main/java下的程序指定classpath,只会去src/main/java和src/main/resource下寻找资源文件。

即main和test下的classpath,所包含的路径是不同的。

如果运行test下的单元测试程序,同时src/test/resouce和src/main/resource都有 配置文件,
同名的话,就会以src/main/resource 下的资源文件优先,存在覆盖问题。

151.jsp页面之间传递参数,也可以使用el表达式获得。
 http://localhost:8080?age=24
 ${param.age}显示 24
 
152.Sitemesh

<decorators defaultdir="/decorators">
    <!-- 不需要过滤的页面 -->
    <excludes>
        <pattern>/views/login.jsp</pattern>
        <pattern>/views/addCampaign.jsp</pattern>
        
    </excludes>

    <decorator name="main" page="main.jsp">
        <pattern>/*</pattern>
    </decorator>

</decorators>

http://localhost:8080/views/addCampaign.jsp?id=1仍然会被Sitemesh过滤掉。

需要使用下面这样的配置,在末尾增加通配符*
<pattern>/views/addCampaign.jsp*</pattern>

153.今天需要给textarea限制字数,发现不能像text那样直接使用属性maxlength="4"。
只能单独写js了。


154.JQuery日历(DatePicker)等UI组件比较灵活。

日历组件可以设置,日期的格式、是否显示第几周,也可以支持汉化(需要引入中文js)。

155.今天在360doc上看到了1篇文章,想复制一个词语,结果提示不让复制。操蛋啊!


在网上找到了3个方法:http://hi.baidu.com/sxdbupt/item/49224412dfd932031894ece1

这里只记载1个最有价值的方法吧。

破解方法一:在需要复制的页面处,在地址栏输入如下代码
javascript:document.body.οncοpy=null;void(0);

(根源:直接看 360doc的那些javascript,以为有什么高级的函数,费了近15分钟,最后绕回原点,
唉。原来还是直接使用了 document.body.oncopy,浪费了15分钟,三下五除二,搞定。)

156.jquery ui datepicker 插件如何设置只能选择日期?而禁止输入日期?
貌似没这种设置,直接给input框加readonly="readonly" 就行了。

参考资料:http://baike.1688.com/doc/view-d25607286.html

157.保存表单的时候,需要验证某个字段的重名。
$.post("<s:url value='/nameIsExist'/>", {
                    name : name
                }, function(data) {//data(true or false)
                    if(data){
                        alert("The  name  exist.");
                        return false;
                    }else{
                      #ELSE
                    }
                });
    //下面是保存表单的代码
    saveForm();

特别说明:上面的写法是不对的。
    
    $.post是异步的,发送1个请求后,就开始执行saveForm了。无论名字是否存在,都会去保存表单。
    
    应该在上面的 #ELSE 地方写 saveForm();
    
    或者使用下面的方法,把ajax方法的参数async设为false。
    ($.post没有async这个参数)
    
    /*
            增加品牌不再验证是否重名
            var exist = false;
            $.ajax("isBrandExist", {
                type:"post",
                data:"brandName="+brandName,
                async:false,
                success:function(data) {
                    if (data) {
                        alert("品牌已存在!");
                        exist = true;
                    }
                }
                
            });
            
            if(exist){
                return false;
            } */
        
    总之,有2种方法。

158.Java和JavaScript等不同语言的语法和类库问题。

Java中的String有startWith("fans");
而JS中的String没有这个方法。charAt,substring等方法实现。

159.MySQL中的Replace into。
遇到1个功能,同步其它系统的用户列表,用户的id作为主键。
如果通过java代码来实现,应该是先删除所有的数据,再插入数据。
先删除的目的就是为了防止,出现重复的主键id。
(特别说明:同步过来的user,含有id,这个id作为主键)
另外一种方法是,使用MySQL中的Replace into。
replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中。
1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。
2. 否则,直接插入新数据。
 
要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。


参考资料:http://blog.csdn.net/sahusoft/article/details/4446877

160.Mybatis中的批量插入。
同步用户,量比较大。
如果是使用单条循环插入的话会对数据库造成很大的负荷状态,数据库的连接资源是有限的,循环插入的时候会直接的影响其它的数据库操作。

参考资料:http://hekuilove.iteye.com/blog/1470895

159和160参考代码

<insert id="addList" parameterType="java.util.List"
        useGeneratedKeys="true" keyProperty="id">
        insert into
        Organization(id,nativeName,englishName,aliasName,orgTypeId,status)
            values
        <foreach collection="list" item="organization" index="index"
            separator=",">
        (#{organization.id},#{organization.nativeName},#{organization.englishName},#{organization.aliasName},#{organization.orgTypeId},#{organization.status})
        </foreach>
    </insert>
    
    不能这样写(我为什么要这样写呢?我想的是insert into values(),()这种写法只能在mysql中用,不能跨数据库)
    <insert id="addList" parameterType="java.util.List"
        useGeneratedKeys="true" keyProperty="id">
        
        <foreach collection="list" item="organization" index="index"
            separator=" ">
        insert into
        Organization(id,nativeName,englishName,aliasName,orgTypeId,status)
            values
            (#{organization.id},#{organization.nativeName},#{organization.englishName},#{organization.aliasName},#{organization.orgTypeId},#{organization.status})
        </foreach>
    </insert>

 

相关阅读

工作问题 http://blog.csdn.net/FansUnion/article/category/1334371

原文参见:  http://fansunion.cn/articles/2241

转载于:https://my.oschina.net/jiutianniao/blog/399767

相关文章:

  • What means the error-message 'java.lang.OutOfMemoryError: GC overhead limit exceeded' in Java?
  • 大家好
  • getBoundingClientRect() 来获取页面元素的位置
  • 索引(二)
  • 《优秀网页设计速查与赏析》464
  • 分享Silverlight/WPF/Windows Phone一周学习导读(05月16日-05月21日)
  • 2015 UESTC 数据结构专题D题 秋实大哥与战争 SET的妙用
  • Sass和Compass入门
  • Operations Manager 2007 R2系列之域控客户端代理安装
  • C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母
  • 控件基本属性Padding, Margins, Align...
  • IBM Tivoli Management Framework默认设置漏洞
  • 在 Java SE 6 中监视和诊断性能问题
  • WinCE6.0流驱动开发的两种方法及驱动加载失败问题解决
  • android 深入研究ratingbar自定义
  • 10个最佳ES6特性 ES7与ES8的特性
  • Babel配置的不完全指南
  • centos安装java运行环境jdk+tomcat
  • CSS 专业技巧
  • css的样式优先级
  • Java|序列化异常StreamCorruptedException的解决方法
  • JavaScript DOM 10 - 滚动
  • Java-详解HashMap
  • laravel 用artisan创建自己的模板
  • Laravel5.4 Queues队列学习
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • SpringBoot几种定时任务的实现方式
  • 对JS继承的一点思考
  • 批量截取pdf文件
  • 如何合理的规划jvm性能调优
  • 如何在GitHub上创建个人博客
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 突破自己的技术思维
  • (10)STL算法之搜索(二) 二分查找
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (多级缓存)缓存同步
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .net项目IIS、VS 附加进程调试
  • @ConfigurationProperties注解对数据的自动封装
  • @软考考生,这份软考高分攻略你须知道
  • [Avalon] Avalon中的Conditional Formatting.