欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

richfaces 使用问题集

程序员文章站 2024-03-12 19:44:50
...

1. java.util.NoSuchElementException

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

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

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

 

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

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

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

<br 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

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

 

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

     在body onload里 设定

document.getElementById("pulldownid").onmousewheel = invalidwheel;

function invalidwheel()
{
 return false;
}

 

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

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

 

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 JSP