jsf 中的 immediate 很烦阿,今天有发现它的一个特性,一般情况下在 jsf生命周期的第6步RENDER_RESPONSE,会调用get方法来完成页面的显示,而如果这个生命周期是由一个 immediate=true 的组件引发的而且是针对同一页面的话,get方法就不会执行。利用这点终于解决了一个问题,不过这是在 portlet下的,而且是a4j的组件,不知道原生的jsf是不是一样。 今天想想可能真的是ajax的原因。而不是jsf 中的 immediate 的特性。
页面 上的 输入组件 的输入值 如果是 null 时(组件的required=false),如果 组件的值是原始类型,页面自然 会出错(converter出错)。 否则 组件的值是对象类型的话,组件的验证器 不会 执行(实验中 自定义的验证器没有执行)。 就是说 在验证器里 对null的情况 是没有办法处理的。
hibernate中get方法和load方法的根本区别在于:如果你使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,那没办法,只能抛异常,所说的load方法抛异常是指在使用该对象的数据时,数据库中不存在该数据时抛异常,而不是在创建这个对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在load时会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理。所以如果你知道该i ...
内部类 指在另一个类内部的类,它可以继承外部类或实现接口。除非是在宿主类的非static方法里,不然创建内部类的对象必须使用 OuterClassName.InnerClassName的形式。 ...... public static void main(String[] args) { OuterClass outer = new OuterClass(); OuterClass.InnerClass inner = outer.createInnerClass(); } ...... 内部类可以声明为 p ...