JSF2.3:“;数组索引超出范围“;呈现Url包含''&&&引用;
给定一个带有参数的url,以便:JSF2.3:“;数组索引超出范围“;呈现Url包含''&&&引用;,url,websphere-liberty,rerender,jsf-2.3,Url,Websphere Liberty,Rerender,Jsf 2.3,给定一个带有参数的url,以便: page.xhtml?param1=value&¶m2=value 在该页面上提交表单后,似乎会发生以下异常和堆栈跟踪: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0 at org.apache.myfaces.context.servlet.ServletExternalContextImpl.encodeURL(ServletExt
page.xhtml?param1=value&¶m2=value
在该页面上提交表单后,似乎会发生以下异常和堆栈跟踪:
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.encodeURL(ServletExternalContextImpl.java:906)
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.encodeActionURL(ServletExternalContextImpl.java:364)
at javax.faces.context.ExternalContextWrapper.encodeActionURL(ExternalContextWrapper.java:80)
at org.apache.myfaces.shared.renderkit.html.HtmlFormRendererBase.encodeBegin(HtmlFormRendererBase.java:88)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:597)
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:527)
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:551)
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:551)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1897)
在重新渲染窗体时,似乎会发生这种情况
使用ajax缩小重新渲染的范围允许我回避这个问题
话虽如此,我想知道是否有更多的选项来解决这个问题?
使用IBM的Liberty 18.0.0.3、IBM的JSF 2.3[1.0.0]该版本的WebSphere Liberty已经有近3年的历史了,因此我首先建议升级到(or)的最新版本,并检查问题是否已经解决
有了Liberty的零迁移架构,到最新版本的迁移应该是无缝的。。。。您不仅可以获得3年左右的bug和安全修复,还可以获得性能和开发增强。WebSphere Liberty的版本已经使用了将近3年,因此我首先建议升级到(或)的最新版本,并检查问题是否已经解决
有了Liberty的零迁移架构,到最新版本的迁移应该是无缝的。。。。您不仅可以获得3年左右的bug和安全修复,还可以获得性能和开发增强。这似乎是我的项目配置所独有的问题。经过一些选择性的删除和添加,发现负责将请求参数重新附加回url的视图处理程序是罪魁祸首 参数字符串
param1=value&¶m2=value
将重新连接为
=¶m1=value¶m2=value
这又导致了编码异常
感谢您并表示歉意。似乎此问题是我的项目配置所独有的。经过一些选择性的删除和添加,发现负责将请求参数重新附加回url的视图处理程序是罪魁祸首 参数字符串
param1=value&¶m2=value
将重新连接为
=¶m1=value¶m2=value
这又导致了编码异常
谢谢您并表示歉意。我无法重现此错误。你能提供一个小应用程序吗?我不能重现这个错误。你能提供一个小应用程序吗?