gry*_*gry 6 jsf http-request-parameters mojarra jsf-2.2 flow-scope
我尝试了最后一个版本的JavaServer Faces 2.2(Mojarra 2.2.4)并注意到以这种不受欢迎的方式更改了我的查询字符串:
page.jsf?jftfdi=&jffi=
Run Code Online (Sandbox Code Playgroud)
代替
page.jsf
Run Code Online (Sandbox Code Playgroud)
我发现它是新的JSF 2.2功能.但这些查询参数(jftfdi,jffi)破坏了我对SEO友好的网址.我该如何禁用它?
这是Mojarra的一个错误.当没有任何流导航配置(通过新的@FlowScoped注释和<j:flow-xxx>标签)时,不应附加它们.
基本上,OutcomeTargetRenderer负责HTML输出生成的类<h:link>并且在附加流导航参数之前<h:button>错误地检查是否NavigationCase#getToFlowDocumentId()返回非null.但是,基于javadoc,基本实现永远不会返回null,而是一个空字符串.因此,渲染器始终认为它位于流导航的中间,并始终附加关联jftfdi和jffi请求参数.修复是让它检查它是否返回非空字符串.
我将其报告为问题3054并且他们确认这是一个错误并且正在进行中.修复可能会在Mojarra 2.2.5中提供.
更新:截至目前,不到一天后,它固定为2.2.5.
顺便说一句,jftfdi代表" javax.facesTo Flow Document ID",在javadoc中指定如下:
由组件系列的渲染器呈现的组件
javax.faces.OutcomeTarget必须使用此常量作为参数的参数名称,该参数表示此组件将导致输入的流的定义文档ID.
和jffi" javax.faces流ID" 的代表,在javadoc中指定如下:
由组件系列的渲染器呈现的组件
javax.faces.OutcomeTarget必须使用此常量作为参数的参数名称,该参数表示此组件将导致输入的流的流ID.
| 归档时间: |
|
| 查看次数: |
1282 次 |
| 最近记录: |