【发布时间】:2012-03-19 04:32:55
【问题描述】:
我在使用 JSF 2.0 的应用中有以下代码
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext()
.getRequest();
HttpServletResponse response = (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
......
try {
request.getRequestDispatcher("SomePage.xhtml").forward(request, response);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但是当线..
request.getRequestDispatcher("SomePage.xhtml").forward(request, response);
执行我得到以下异常...
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at javax.faces.component.AttachedObjectListHolder.restoreState(AttachedObjectListHolder.java:165)
at javax.faces.component.UIComponentBase.restoreState(UIComponentBase.java:1432)
at com.sun.faces.application.view.StateManagementStrategyImpl$1.visit(StateManagementStrategyImpl.java:265)
at com.sun.faces.component.visit.FullVisitContext.invokeVisitCallback(FullVisitContext.java:151)
由于某些应用程序限制,我无法使用
FacesContext.getCurrentInstance().getExternalContext().redirect();
方法..
这是 JSF 2.0 的错误吗??
【问题讨论】:
-
好吧,似乎在进行转发之前需要调用一些 JSF 生命周期方法,因为我能够使用正常的 JSF 导航进行转发。知道哪些方法吗??
标签: jsf-2