richfaces 一些常见问题

1. java.util.NoSuchElementException

使用selectOneMenu或 rich:comboBox 时,valueChange或 画面提交 后报错

Java代码

java.util.NoSuchElementException javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:96) ..........

原因: list项目为空 (可能没有初始化 或 scope为request)

 

2. jsp画面在刷新时,局部产生抖动,或div位置发生变化(与上面部分的间隔增大或消除)

       原因: 可能是动态的改变了div里的内容导致

       临时解决方法: 在变动的位置上方 加入代码

Html代码

<br style="line-height: 1px; display: block;" mce_style="line-height: 1px; display: block;" >
 

3. 使用richfaces-api-3.3.0.GA.jar 版本的rich:panel时,会产生多余的空白

     解决: . 在body onload 时对rich:panel生成的div 设置 style.display='none'

              . 使用margin

Html代码

<rich:panel style="margin:-10px; " mce_style="margin:-10px; " >

 

4. 使selectOneMenu项目对鼠标滚轮事件不响应

     在body onload里 设定

Js代码

 

document.getElementById("pulldownid").onmousewheel = invalidwheel; function invalidwheel() { return false; }

 

5. rich:calendar对鼠标滚轮事件不响应

    使rich:calendar弹出选择画面后,位置固定 (画面div不响应鼠标滚轮滚动,当滚动时关闭calendar)

 

Html代码

function controllwheel(flg) { if (flg == 0) document.getElementById("scrolldivid").onmousewheel = function(){return false;}; else document.getElementById("scrolldivid").onmousewheel = function(){return true;}; } <rich:calendar id="calendar" onexpand="controllwheel(0);" oncollapse="controllwheel(1);"/> function closecalendar() { document.getElementById("calendar").component.doCollapse(event); } <div id="scrolldivid" onscroll="closecalendar();">

 

6. selectOneMenu与a4j:support一起使用时,如果需要监听selectOneMenu的valuechange事件,最好用

    a4j:support的actionListener , 不要用selectOneMenu的valueChangeListener

   另外,用了a4j后,最好把事件都放在a4j里,否则容易出现乱码

 

7. rich:calendar位置固定问题

    当rich:calendar放在div里时,不会随着div一起滚动,而是浮在画面上的固定位置

    原因是div的position没有设为absolute

     (这时rich:calendar是div的child)

你可能感兴趣的:(richfaces 一些常见问题)