我知道这已被多次询问,但我的问题略有不同。
我有一个查询数据库并抛出结果的 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>
在我的 databaseSearch.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>