gpt4 book ai didi

java - 如何在 JSF 2x 中使用结果并在地址栏中保留相同的 url?

转载 作者:太空宇宙 更新时间:2023-11-04 07:07:54 25 4
gpt4 key购买 nike

我对使用 JSF 和 PrimeFaces 开发网站还很陌生,在在这里发布之前我花了很多时间来研究我的问题。感谢所有花时间阅读我的问题的人。

嗯,我在菜单模板页面中使用它:

<h:link value="Manage Examination" outcome="/backend/examination/index" />
...
<h:link value="List Examinations..." outcome="/WEB-INF/include/backend/examination/List.xhtml" />
<h:link value="Add Examination..." outcome="/WEB-INF/include/backend/examination/Create.xhtml" />

我的 WEB-INF 文件夹的结构如下:

WEB-INF
\--include
\\-----backend
\\------'entity name'
\\\-------'create,read,update,delete.xhtml'

WEB-INF外面是我的网页根文件夹,我这里有backend文件夹,它的结构:

webpages
\--WEB-INF
\--backend
\\---'entity name'
\\\---index.xhtml

在每个 html 中我放置了这些代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
template="/WEB-INF/include/templates/backend.xhtml">

<ui:define name="title">
<h:outputText value="#{appBundle.ExaminationTitle}"/>
</ui:define>

<ui:define name="body">
<ui:include src="/WEB-INF/include/backend/examination/List.xhtml"/>
</ui:define>

</ui:composition>

我的问题是:

  1. 我没有在 faces-config.xml 中配置任何内容,因此 JSF 可以知道我是否单击该链接吗?
  2. 即使我点击“列出考试”或“添加考试”链接,如何才能使地址栏中的网址始终为 /backend/examination/index 并将结果发送到 /WEB-INF/include/backend/examination/*

NNToan

最佳答案

您滥用了 <h:link> .

“outcome”属性的值应绑定(bind)到根为主要面上下文路径的路径。 JSF 框架将使用 <a/> 呈现您的 h:link标签,因此保持相同的地址是不可能的。

<h:link value="Page 1" outcome="page1.xhtml" />

实际上会翻译成:

<a href="/faces/page1.xhtml">Page 1</a>

如果您想在没有用户重定向的情况下执行操作,您应该使用 commandLink 或 commandButton,返回一个字符串(还要注意不要在该字符串中包含 faces-redirect 参数)。

例如:

<h:commandLink value="Click here" action="#{YourBean.myAction}"/>

在你的支持 bean 中:

public String myAction()
{
// do your stuff here
return ""; // in general return the view you want to be redirected on, "" means "here"
}

关于java - 如何在 JSF 2x 中使用结果并在地址栏中保留相同的 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21051224/

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