送信ボタンのあるフォームを使用して facelets ファイルからサーブレットを呼び出す適切な方法は何ですか? 特定のフォームが必要ですか?
質問する
6941 次
2 に答える
10
<form>
JSF の代わりにプレーンな HTML を使用して<h:form>
ください。JSF<h:form>
はデフォルトで POST リクエストを現在のビュー ID の URL に送信し、デフォルトでFacesServlet
. フォーム アクションの URL またはメソッドを変更することはできません。プレーンな HTML<form>
では、別の URL を指定でき、必要に応じてメソッドも指定できます。
次のキックオフの例では、検索リクエストを Google に送信します。
<form action="http://google.com/search">
<input type="text" name="q" />
<input type="submit" />
</form>
入力/ボタンにも JSF コンポーネントを使用する必要はないことに注意してください。などを使用することは可能<h:inputText>
ですが、関連するバッキング Bean には値が設定されません。JSF コンポーネントのオーバーヘッドは不要です。
たとえば、 の URL パターンにマップされたサーブレットに POST リクエストを/foo/*
送信し、 という名前のリクエスト パラメータを送信する必要がある場合はbar
、次のようにフォームを作成する必要があります。
<form action="#{request.contextPath}/foo" method="post">
<input type="text" name="bar" />
<input type="submit" />
</form>
このようにして、サーブレットのdoPost()
メソッドが呼び出されます。
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String bar = request.getParameter("bar");
// ...
}
于 2012-04-16T15:13:51.817 に答える
-1
jsf から以下の方法で呼び出すことができます。
<h:outputText value="Download" />
<h:outputLink value="#{request.contextPath}/files" id="btnDownload1" styleClass="redButton">
<h:outputText value="FILESDOWNLOAD" />
</h:outputLink>
</h:panelGrid>
次に、web.xml で:
<servlet>
<servlet-name>files</servlet-name>
<servlet-class>com.Download</servlet-class>
于 2016-08-29T11:37:53.700 に答える