Month: August 2008

[sitemesh]与 jsp:include 配合使用的问题

如果用了sitemesh,那么在它的decorator:body 中再次使用 jsp:include 时要注意 1.如果再次被包含的页面内容很大,而且放在最后,可能会导致浏览器中的整个页面坍塌 1.如果在decorator:body 中使用了两次 jsp:include ,也可能会导致浏览器中的整个页面坍塌 页面坍塌 就是 页面的布局混乱、而且内容残缺,有的地方会出现html源码 以上问题是在将sitemesh与tomcat一起使用时发现的

Could not format discriminator value to SQL string

   [hibernate] Could not format discriminator value to SQL string…异常    如果discriminator value不是String类型就可能出这种错误,解决办法是在 Class.hbm.xml中的class元素处加上属性:discriminator-value="not null"

CGLIB环境下,Properties.copyProperties()要慎用

Properties.copyProperties() 就是用来复制一个BEAN的所有属性 到 另一个BEAN 但如果其中一个BEAN是ProxyBean(如CGLIB实现的代理),那就很可能会出错,因为ProxyBean有其他一些 莫名奇妙 的属性,把这些属性搞给一个非Proxy的原Bean,就会出现“无此属性” 错误

ResourceBundle 除了方便国际化,还有一个好处:将所有字符串集中存放

    假设你要给一个国家作网站,这个国家的第一级行政单位都叫“省”,你要介绍各个省的风土人情     如果不用ResourceBundle,就要将“省”字写在JSP里,或者数据库里,一个省一个JSP,或者一条数据库记录    有一天,翻译突然告诉你说:“不好意思,我译错了,不应叫‘省’,而应叫‘郡’”,那你就要改死了,一个JSP一个JSP地改,或者一条一条地更新数据库记录    如果用了ResourceBundle,就可以把所有的行政单位名都写在同一个文件中,当省变郡时,只需要在这个文件中批量替换一下就成,非常方便

配置文件的分类存放 — 例

6.4 配置文件的分类存放 代码中的配置文件可以分为两大类: 1. 只在开发时修改,而不能在运行时修改的配置文件,如Spring的Bean注入配置,Hibernate的字段映射等。此类文件若发生变更,则相当于JAVA源代码发生变更,必须由开发人员完成。因此此类文件适合放在classpath下。即web/WEB-INF/classes中。 2. 适于运行时修改的配置文件,它们代表着系统参数,跟着生产环境的变化而变化,如 线程池配置。为了方便部署,此类文件不应与java字节码混在一起,即不能在classpath下。此类文件必须放在non-classpath-config中。由于系统的分布式特性,non-classpath-config下又设置了两个目录:     a) process-common-config. 对所有进程来说配置相同的配置,如数据源配置;或者只为一个进程使用,不为其他进程使用的配置文件。     b) process-specific-config. 在不同进程中,有不同的配置。如不同进程就有不同的log4j文件路径。

为什么网站的在线数统计值为负值?

有一种可能是因为 统计数的加减程序 没有设成synchronized 但还有一种可能: When the server is restarted, if there are active sessions they are persisted by default. Then the server comes back up, and all these sessions are active, without a session created event, so your listener has a counter value of 0, but there are actually >0 active sessions. When these are …

为什么网站的在线数统计值为负值? Read More »