我正在研究一个用于练习和导航规则的小工具,引起了我的注意。所以我查看了几个网络教程,并亲自尝试过,但它并不适合我。它不会重定向到所需的页面。
faces-config.xml(只有应该重要的部分)
<navigation-rule>
<from-view-id>/kursleiter.xhtml</from-view-id>
<navigation-case>
<from-action>#{verifyCredentials.save}</from-action>
<from-outcome>ok</from-outcome>
<to-view-id>/teilnehmer.xhtml?faces-redirect=true</to-view-id>
</navigation-case>
</navigation-rule>
返回<from-outcome>
public class verifyCredentials() {
public String save(Klasse klasse, Module modul) {
//do some other stuff
return "ok";
}
}
按下此commandLink时,重定向应该发生
<p:commandLink actionListener="#{verifyCredentials.save(klasse, modul)}">#{modul.modulnummer} </p:commandLink>
现在,这给我带来了几个问题:
/faces/
?<from-view-id>
提前谢谢你 - Reteras
答案 0 :(得分:7)
有两个错误。
首先,你在这里将隐式与显式导航混合在一起。
.divider {
position: relative;
}
.divider:after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 1px;
background-color: #000;
}
<to-view-id>/teilnehmer.xhtml?faces-redirect=true</to-view-id>
查询字符串参数仅用于隐式导航,如下所示:
faces-redirect=true
请注意,这不需要任何XML配置!隐式导航功能是JSF 2.0以来的新功能。也许你在学习JSF 2.x时正在阅读/关注JSF 1.x资源而不是JSF 2.x资源。注意学习资源中提到的日期和版本。
如果您确实需要通过XML中的显式导航配置此重定向,请改用public String save(Klasse klasse, Module modul) {
// ...
return "/teilnehmer.xhtml?faces-redirect=true";
}
。
<redirect>
其次,您将<navigation-case>
<from-action>#{verifyCredentials.save}</from-action>
<from-outcome>ok</from-outcome>
<to-view-id>/teilnehmer.xhtml</to-view-id>
<redirect />
</navigation-case>
与actionListener
混合在一起。
action
<p:commandLink actionListener="#{verifyCredentials.save(klasse, modul)}">
不支持返回导航结果。请改用actionListener
。
action