我必须在我的Web应用程序中设置显式导航(Java 8 + Primefaces 6)。 我不太了解这些技术,但我想为每个xhtml页面设置一个通用名称,以便在网址中查看。
所以我创建了一个页面test.xhtml:
<h:form id="formId">
<p:inputText...
<p:commandButton id="btn"
value="test"
action="#{myBeanViewScoped.test()}" />
</h:form>
如果没有错误,方法测试会返回一个xhtml页面。 如果我在return语句中添加as后缀代码:
return "/calledPage.xhtml?faces-redirect=true"
正常工作。 我读了一些关于这个的文章,我试图删除后缀&#34;?faces-redirect = true&#34;并在我的faces-config.xml中添加此代码:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<locale-config>
<default-locale>en</default-locale>
</locale-config>
</application>
<navigation-rule>
<display-name>test</display-name>
<from-view-id>/test.html</from-view-id>
<description>test</description>
<navigation-case>
<display-name>authenticated</display-name>
<description>authenticated</description>
<from-action>#{myBeanViewScoped.test}</from-action>
<from-outcome>/calledPage.xhtml</from-outcome>
<to-view-id>/calledPage.xhtml</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
</faces-config>
应用程序不会产生错误,但我在URL中总是看到test.xhtml而不是&#34;经过身份验证&#34;。 我的错在哪里?
感谢。