gpt4 book ai didi

java - Apache MyFaces JSF2.0 bug : getStateHelper(). put 没有保存任何内容?

转载 作者:行者123 更新时间:2023-12-02 07:49:43 24 4
gpt4 key购买 nike

MyFaces 似乎忽略了我在此组件中对 getStateHelper.put() 的调用:

public class BFTableComponent extends UINamingContainer {
...
private void setCurrentPageNumber(int currentPageNumber) {
getStateHelper().put(PropertyKeys.currentPageNumber, currentPageNumber);
}

public int getCurrentPageNumber() {
return (Integer) getStateHelper().eval(PropertyKeys.currentPageNumber, 0);
}

public void nextPage() {
setCurrentPageNumber(getCurrentPageNumber() + 1);
updateCurrentPage();
}

public void previousPage() {
setCurrentPageNumber(getCurrentPageNumber() - 1);
updateCurrentPage();
}

...
}

如您所见,当前端组件调用 nextPage 时,目标是将页码前进一位。但是,当在 MyFaces 中运行此函数时,eval() 调用将在立即请求生命周期内起作用,但下一个请求将返回 0。如果我输入 null 而不是 0,则会得到 NPE。

pageNumber 状态需要在组件的生命周期内携带,而不仅仅是当前请求。我究竟做错了什么?此代码在 Mojarra 下运行良好,但在 MyFaces 中运行不佳。

最佳答案

事实证明,这实际上是 MyFaces 中某个地方的错误。我在 Apache TomEE beta2 中运行它。它包括 MyFaces 2.1.2。我用 2.1.7 替换了 jars,问题自行解决了。

感谢您的浏览!

关于java - Apache MyFaces JSF2.0 bug : getStateHelper(). put 没有保存任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10366934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com