您的位置:首页 > 其它

richfaces 一些常见问题

2010-02-26 05:19 197 查看
1. java.util.NoSuchElementException

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

Java代码

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


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

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

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

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

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

Html代码

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


<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

Html代码

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


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


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

在body onload里 设定

Js代码

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

function invalidwheel()
{
return false;
}


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();">


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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: