技术
Opera浏览器HTML5体验版
日期:一月 8th, 2012 分类:移动开发
具体介绍,大家就看官方网站上的介绍吧:http://www.oupeng.com/oupeng-h5
或者 查看善用佳软的一篇介绍文章:http://xbeta.info/opera-mini.htm
或者 自己在android手机上装个玩玩。
这里列出demo中的地址,可以参考学习:
CSS3 Demo:
http://h5d.oupeng.com/css3/demo/
HTML5 Geolocation
日期:一月 4th, 2012 分类:移动开发
HTML5 Geolocation 的使用流程:
1、浏览器请求一个位置信息;
2、如果用户同意,浏览器就返回位置信息;
3、浏览器通过返回的位置信息应用在应用程序上,达到定位及展现相关信息的目的。
位置信息可以从设备的下列数据源获取:
视频播放兼容解决方案 – Video For Everybody
日期:十二月 30th, 2011 分类:前端开发
从这里看到的:http://camendesign.com/code/video_for_everybody
通过一段HTML实现在各个浏览器下的视频播放:
<video width="640" height="360" controls> <!-- MP4 must be first for iPad! --> <source src="__VIDEO__.MP4" type="video/mp4" /><!-- Safari / iOS video --> <source src="__VIDEO__.OGV" type="video/ogg" /><!-- Firefox / Opera / Chrome10 --> <!-- fallback to Flash: --> <object width="640" height="360" type="application/x-shockwave-flash" data="__FLASH__.SWF"> <!-- Firefox uses the `data` attribute above, IE/Safari uses the param below --> <param name="movie" value="__FLASH__.SWF" /> <param name="flashvars" value="controlbar=over&image=__POSTER__.JPG&file=__VIDEO__.MP4" /> <!-- fallback image. note the title field below, put the title of the video there --> <img src="__VIDEO__.JPG" width="640" height="360" alt="__TITLE__" title="No video playback capabilities, please download the video below" /> </object> </video> <p> <strong>Download Video:</strong> Closed Format: <a href="__VIDEO__.MP4">"MP4"</a> Open Format: <a href="__VIDEO__.OGV">"Ogg"</a> </p>
HTML5规定,任何内嵌于’<video>’元素的标签,除了’<source>’都将忽略,因此内嵌’<object>’元素保持向后兼容。
通过Java的static,理解JavaScript的prototype
先看两段代码:
Java 代码
public class Dog {
public static final String type="golden retriever";
public Dog(String name){
System.out.println(name + " is a " + type + " dog.");
}
public static void main(String[] args){
Dog dog = new Dog("tom_1");
dog = new Dog("tom_2");
}
}
JavaScript 代码
function Dog(name){
alert(name+ " is a " + this.type +" dog");
}
Dog.prototype.type="golden retriever";
var dog = new Dog("tom_1");
dog = new Dog("tom_2");
共性:
1、都是在构造方法之前就已经初始化了;
2、所有实例对象共享同一个变量;
分享:jasperreport的il8n
日期:十二月 7th, 2011 分类:编程相关
在jasperreport jar包的\net\sf\jasperreports\view\下面有很对viewer_*.properties的文件,这些文件就是默认的il8n文件,但是没有中文的。
那么就把里面某个文件,拽出来,重命名文件名为:viewer_zh_CN.properties
对应的键值对,可以自行更改,然后再把这个中文i18n文件加入到jar包中即可。如下图所示:

Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected end of subtree
日期:十二月 2nd, 2011 分类:编程相关
这是一个Hibernate bug,具体可以查看这里:https://hibernate.onjira.com/browse/HHH-2045,截止目前的状态还是Open。
通常是查询时 “in” 后面的集合为空时造成的。
比较简单的解决办法:
当集合为空时,给该空集合加入一个永远都不可能匹配上的值,让不为空。
还有另外一种稍简单办法就是拼接sql语句。
net.sf.jasperreports.engine.util.JRFontNotFoundException: Font ‘黑体’ is not available to the JVM
日期:十一月 29th, 2011 分类:编程相关
有些系统可能没有黑体,那么只能继续使用默认字体,当然也可以考虑把黑体的字体文件加入classpath中
下面说一下使用默认字体:
开发 jasperreports-4.1.2.jar包,找到:default.jasperreports.properties
在这里修改jasperreports的默认字体设置
# Font settings net.sf.jasperreports.default.font.name=SansSerif net.sf.jasperreports.default.font.size=10 net.sf.jasperreports.default.pdf.font.name=Helvetica net.sf.jasperreports.default.pdf.encoding=Cp1252 net.sf.jasperreports.default.pdf.embedded=false net.sf.jasperreports.awt.ignore.missing.font=false
其中
net.sf.jasperreports.awt.ignore.missing.font=true
是关键所在。
修改完再扔回包里,就可以了。
Querying @ElementCollections
日期:十一月 3rd, 2011 分类:编程相关
在JPA 2.0中使用到注解 @ElementCollection
public class Budget extends IdEntity {
@ElementCollection(fetch = FetchType.EAGER)
@Column(name = "projectLeaderIDs")
private List<String> projectLeaderIDs;
}
在@ElementCollection的属性中做查询
String sql = "select count(b) from " + Budget.class.getSimpleName()
+ " b,IN (b.projectLeaderIDs) s where :userID in s";
show sql:
Hibernate:
select
count(budget0_.id) as col_0_0_
from
budget budget0_
inner join
Budget_projectLeaderIDs projectlea1_
on budget0_.id=projectlea1_.Budget_id
where
? in (
projectlea1_.projectLeaderIDs
) limit ?
在对List做remove操作时抛出java.lang.UnsupportedOperationException
日期:十月 27th, 2011 分类:编程相关
原因:
那个List是通过Arrays.asList()这个方法构造的,一直以为返回的就是一个ArrayList,今天查看了源码发现错了,是Arrays里面一个名叫ArrayList的私有类。
public class Arrays {
...
public static List asList(T... a) {
return new ArrayList(a);
}
private static class ArrayList extends AbstractList
implements RandomAccess, java.io.Serializable
{
...
}
...
}
它也继承自AbstractList,只是没有实现remove方法,而AbstractList类中remove方法默认是抛java.lang.UnsupportedOperationException异常的。
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {
...
public E remove(int index) {
throw new UnsupportedOperationException();
}
...
}
cannot simultaneously fetch multiple bags 问题的解决办法
日期:十月 24th, 2011 分类:编程相关
完整的异常信息如下:
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags at org.hibernate.loader.BasicLoader.postInstantiate(BasicLoader.java:94) at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:119) at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:71) at org.hibernate.loader.entity.EntityLoader.<init>(EntityLoader.java:54) at org.hibernate.loader.entity.BatchingEntityLoader.createBatchingEntityLoader(BatchingEntityLoader.java:133) at org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader(AbstractEntityPersister.java:1914) at org.hibernate.persister.entity.AbstractEntityPersister.createEntityLoader(AbstractEntityPersister.java:1937) at org.hibernate.persister.entity.AbstractEntityPersister.createLoaders(AbstractEntityPersister.java:3205) at org.hibernate.persister.entity.AbstractEntityPersister.postInstantiate(AbstractEntityPersister.java:3191) at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:348) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
问题是什么时候出现的呢?
当一个实体对象中包含多于一个non-lazy获取策略时,比如@OneToMany,@ManyToMany或者@ElementCollection时,获取策略为(fetch = FetchType.EAGER)

