gpt4 book ai didi

navigation - 在 jsf-2.2 中的 faces-config 中传递重定向参数

转载 作者:行者123 更新时间:2023-12-04 01:07:25 28 4
gpt4 key购买 nike

在旧的 jsf 中,以下代码正在运行

<navigation-rule>
<from-view-id>/page1.xhtml</from-view-id>
<navigation-case>
<from-outcome>true</from-outcome>
<to-view-id>/page2.xhtml</to-view-id>
<redirect>
<view-param>
<name>id</name>
<value>#{myBean.id}</value>
</view-param>
</redirect>
</navigation-case>
</navigation-rule>

page1.xhtml 代码:
<f:metadata>
<f:viewParam id="id" name="id" value="#{myBean.id}" />
<f:viewAction action="#{myBean.init()}"/>
</f:metadata>

Java代码:
public class MyBean(){
private double id;

public boolean init(){
if(id > 0)
return true;
else
return false;
}
}

在成功场景中 page1.xhtml?id=0 page1 将被打开,同时 page1.xhtml?id=1导航至 page2带参数 id=1 .

导航至 page2.xhtml?id=1需要带参数,因为在 page2PostConstruct<f:viewAction>参数被读取并需要根据此 id 查找对象

在faces-config.xml 文件中使用jsf 2.2 和mojarra javax.faces-2.2.8 实现没有 <view-param><redirect-param>更改它们不会产生导航没有 id 的成功场景,它将导航到 page2.xhtml而不是 page2.xhtml?id=1

最佳答案

你可以用旧的方法来做。而不是使用 <redirect-param>使用 <view-param> . xsd ( http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd ) 会将其标记为 false 但 mojarra javax.faces-2.2.8 会以您想要的正确方式默默地使用它。

编辑:XSD 将在 Mojarra 2.3 版本中修复,请参阅其他“答案”

例子:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd" version="2.2">
<navigation-rule>
<navigation-case>
...
<redirect>
<view-param>
<name>foo</name>
<value>bar</value>
</view-param>
</redirect>
</navigation-case>
</navigation-rule>
</faces-config>

关于navigation - 在 jsf-2.2 中的 faces-config 中传递重定向参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27149787/

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