gpt4 book ai didi

jsf - 如何将 url 参数传递给 JSF/xHTML?

转载 作者:行者123 更新时间:2023-12-01 10:52:04 24 4
gpt4 key购买 nike

我知道这个问题已经被问过多次,但我的问题有点不同。

我有一个查询数据库并抛出结果的 JSF 页面,在我迁移到 JSF 之前,我曾经在 JSP 中执行此操作并且工作正常。

下面是我在使用JSP时使用的链接格式

http://localhost:8080/blmdatabase/index.jsp?SearchString=Name&Category=Contact&Submit=Submit

我的 index.jsp 用于使用 param.SearchString 和 param.Category 捕获值,“提交”用于激活搜索的“提交”按钮。

我如何为 xHTML/JSF 做同样的事情?

这是我尝试过的...

http://localhost:8080/blmdatabase/index.xhtml?search=#{some search string}

在我的 index.xhtml 中

    <td>
<f:metadata>
<f:viewParam name="search" value="#{databaseSearch.searchstring}" />
</f:metadata>
<p:inputText id="searchstring" size="20" maxlength="20" value="#{databaseSearch.searchstring}"/> <p:commandButton id="submit" icon="ui-icon-search" title="Search Database" update="panel" actionListener="#{databaseSearch.customerList}" />
</td>

在我的数据库中Search.java

@ManagedBean(name = "databaseSearch")
@SessionScoped

public class databaseSearch implements Serializable {

public String searchstring;
//getter and setter for searchstring
}

此外,我需要它“提交”表格....我是新手,如果之前已经讨论过,请原谅...

此外,如果我指定了 index.html ,我的 jsf 组件将不会加载,只是一个空白页面。就像我去一样

http://localhost:8080/blmdatabase/

我的 primefaces 组件加载正常,但如果我这样做

 http://localhost:8080/blmdatabase/index.xhtml

它没有,所以现在我想知道如何传递参数:(

Web.xml

<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>

最佳答案

您可以“提交”您的表单添加 <f:event type="preRenderView"><f:metadata>里面标签。

<f:metadata>
<f:viewParam name="search" value="#{databaseSearch.searchstring}" />
<f:event type="preRenderView" listener="#{databaseSearch.doSearch}" />
</f:metadata>

这样,您就可以实现您的 bean 如何搜索这个特定的查询字符串

public void doSearch(ComponentSystemEvent event) {
if(!searchString.isEmpty()) {
// Do your search here
}
}

关于jsf - 如何将 url 参数传递给 JSF/xHTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17949283/

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