当前位置: 首页 > 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自定义
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 08.Android之View事件问题
  • Cookie 在前端中的实践
  • idea + plantuml 画流程图
  • js写一个简单的选项卡
  • PHP CLI应用的调试原理
  • SpingCloudBus整合RabbitMQ
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 巧用 TypeScript (一)
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • (AngularJS)Angular 控制器之间通信初探
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (ZT)薛涌:谈贫说富
  • (ZT)一个美国文科博士的YardLife
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (转)大型网站的系统架构
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • @Autowired和@Resource装配
  • @Bean, @Component, @Configuration简析
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • [Go WebSocket] 多房间的聊天室(三)自动清理无人房间
  • [IDF]摩斯密码
  • [leetcode]114. Flatten Binary Tree to Linked List由二叉树构建链表
  • [LeetCode]—Simplify Path 简化路径表达式
  • [OGRE]看备注学编程(02):打地鼠01-布置场地九只地鼠
  • [php] 数据结构算法(PHP描述) 快速排序 quick sort
  • [Poetize6] IncDec Sequence
  • [Windows编程] 监视DLL装载/卸载
  • [ZJOI 2013] bzoj3110 K大数查询 【树套树】
  • [翻译]简单谈谈事件与委托
  • [翻译]设计.Net Compact Framework(二)