我是 JSF 的新手。我的应用程序正在运行,但在使用控制器时我对浏览器中的链接感到困惑。顺便说一句,我的应用程序中还有 PrimeFaces,所以不要对p:
标签感到惊讶。假设我有“列表”和“显示”页面,控制器在它们之间进行重定向。首先我在http://localhost:8080/y/r/conversation/list.xhtml
页面上。有用 line 创建的链接<p:commandLink action="#{lazyConversationBean.doShow(conv)}" ajax="false" value="View"/>
。lazyConversationBean 在这里充当我的控制器。有方法:
public String doShow(Conversation c) {
this.setSelectedConversation(c);
return "view";
}
http://localhost:8080/y/r/conversation/list.xhtml
即使它是正确的http://localhost:8080/y/r/conversation/view.xhtml
页面,我也再次被重定向到...... (浏览器显示它)。我有链接<p:commandButton action="#{lazyConversationBean.doList()}" ajax="false" value="Back to list"/>
,控制器又有方法:
public String doList() {
return "list";
}
我从中被重定向到......是的,你猜对了...... http://localhost:8080/y/r/conversation/view.xhtml
(这又是浏览器显示的内容)即使它再次是正确的http://localhost:8080/y/r/conversation/list.xhtml
页面。
它接缝为浏览器链接区域总是比当前显示的页面落后一步。我什至不知道这是否是一些不正确的行为,因为我不知道如何查询谷歌:D 只是为了测试我做了这个简短的教程,netbeans 在我的一个实体上创建了整个代码堆栈,行为是同样,所以它与 PrimeFaces 魔法无关。
你能告诉我它为什么会发生,以及如何解决它吗?用户喜欢复制正确的链接;)