都是在sf上找到的。
1.TCExam agpl的许可证,麻烦。PHP/mysql的
功能一般,只是个考试系统,多语言支持。
地址:http://sourceforge.net/projects/tcexam/
2. eFront – Refreshing eLearning
看截图还不错,主页:http://sourceforge.net/projects/efrontlearning/
另一个主页:http://www.efrontlearning.net/
3. WEB-SET CAMPUS
http://sourceforge.net/projects/web-set-campus/
4. GARC – An eLearning System
http://sourceforge.net/projects/garc/
5. Testa OTMS
http://sourceforge.net/projects/testa-otms/
August 31, 2010
几个开源的在线考试系统
August 4, 2010
回龙观地区通讯地址
中文:北京市昌平区回龙观(文化居住区)AA苑(园)B区CC号楼DD单元EEE 邮政编码:102208
英文:Room DD-EEE,Bldg No.CC,Block B,AA, Huilongguan residential area,Changping District,Beijing 102208,PRC
July 8, 2010
spring里的ModelAttribute
在spring里,model和form的对应不需要写xml文件,只需要在页面里用form这个taglib就可以了:
这里的commandName就是和Controller里相互映射的model的名字(实例名)
path=email指定了对应对象的属性。
Controller里可以这样写:
protected ModelAndView sendInvite(@ModelAttribute(“invite”) Invite invite,
BindingResult result, SessionStatus status, ModelMap model) {}
其中,参数的第一个invite会自动从form里生成一个Invite的实例并设置值,Controller里直接使用这个对象就可以。
而加上@SessionAttributes的话,可以在form里一直显示上次输入的form内容,直到自己调用status.setComplete()为止,这个操作的意思就是一个form相关联的操作已经结束,从session里清空就可以了
July 1, 2010
svn不能提交的错误
Eclipse里提交代码的时候,提示:
org.tigris.subversion.javahl.ClientException: APR does not understand this error code
svn: Commit failed (details follow):
svn: Cannot accept non-LF line endings in ‘svn:log’ property
comment写了2行而已,查了下,网上有人说每行最后以空格结尾就行了,我试了下还是不行。
不要comment,提交成功。。。奇怪。
在spring中设置request的charset为utf-8
在java里可以用:request.setCharacterEncoding(“UTF-8″);
在Spring的Controller类里个别设置太麻烦,可以用filter
- <filter-name>Spring character encoding filter</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>Spring character encoding filter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
June 25, 2010
Android中一些关于sqlite的总结-1
1.数据库文件
位于:/data/data/{package} /databases文件夹中
2.SQLiteOpenHelper 的onCreate,onUpgrade
你可以扩展SQLiteOpenHelper类,它是一个Android辅助类,主要用于数据库创建和版本管理。实际上,你可以覆盖onCreate()和onUpgrade()方法
onCreate在数据库第一次被创建的时候才会调用,不用担心每次都掉用。
因为很多例子都是create table的语句,重复调用显然原来的数据会没的。
而onUpgrade则是升级的时候才会调用,看如下代码:
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
- + newVersion + ", which will destroy all old data");
- db.execSQL("DROP TABLE IF EXISTS test");
- onCreate(db);
- }
June 24, 2010
hibernate3.2里的Transformers
hibernate 里想将sql的结果转为对象,但是对象不想再.hb.xml里定义,可以考虑用 ResultTransformer
使用SQL Transformers
- List resultWithAliasedBean = s.createSQLQuery(
- "SELECT st.name as studentName, co.description as courseDescription " +
- "FROM Enrolment e " +
- "INNER JOIN Student st on e.studentId=st.studentId " +
- "INNER JOIN Course co on e.courseCode=co.courseCode")
- .addScalar("studentName")
- .addScalar("courseDescription")
- .setResultTransformer( Transformers.aliasToBean(StudentDTO.class))
- .list();
- StudentDTO dto =(StudentDTO) resultWithAliasedBean.get(0);
注意,如果不加上addScalar()调用的话,可能有些属性不会被设置值,因为他们可能是用大写字母返回的。
用Map
指定Transformers.ALIAS_TO_MAP就可以了,如下所示,你不必为了在需要记忆字段对应的位置,因为他们是map
- List iter = s.createQuery(
- "select e.student.name as studentName," +
- " e.course.description as courseDescription" +
- "from Enrolment as e")
- .setResultTransformer( Transformers.ALIAS_TO_MAP )
- .iterate();
- String name = (Map)(iter.next()).get("studentName");
原文:http://swik.net/Hibernate/Hibernate+GroupBlog/Hibernate+3.2:+Transformers+for+HQL+and+SQL/cmxs
June 21, 2010
找不到org.slf4j.impl.StaticLoggerBinder
启动tomcat出错:
- 严重: Servlet /AppStoreServer threw load() exception
- java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
- at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
- at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
- at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223)
- at org.slf4j.LoggerFactory.bind(LoggerFactory.java:120)
- at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
- at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:269)
- at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
- at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255)
原来hibernate自带了个slf4j的东西,但是不带这个,还要另外下载。
hibernate的mappingResources和mappingDirectoryLocations
如果嫌mappingResources的麻烦,可以用mappingDirectoryLocations
- <property name="mappingDirectoryLocations">
- <list>
- <value>WEB-INF/rescources/com/abc</value>
- </list>
- </property>
hibernate-extensions和hiberanate版本的问题
想用hbm2java生成java代码,却出现错误:
Exception in thread “main” java.lang.NoClassDefFoundError: net/sf/hibernate/MappingException
Caused by: java.lang.ClassNotFoundException: net.sf.hibernate.MappingException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: net.sf.hibernate.tool.hbm2java.CodeGenerator. Program will exit.
查了一下,原来这个MappingException在最新的hibernate里面没有了(3.5.3Final),还要在老的版本里去找。
下了一个2.1.7c的就可以了
记得要在setenv.bat里加入一行:
set HIBERNATE_HOME=c:\hibernate-2.1