これが何度も尋ねられたことは知っていますが、私の質問は少し異なります。
データベースにクエリを実行して結果をスローする 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>