<form>
to<h:form>
およびその他の HTML コンポーネントを JSF コンポーネントに変更し、それらの値をマネージド Bean にバインドして、ユーザーがデータを送信できるようにします。次に、メソッドでデータを評価し、 Apache HttpClientaction
などのライブラリを使用して、必要な URL に POST 要求を送信します。
これは、これの生の例かもしれません(あなたの例に基づいて)。
JSF コード
<h:form >
<h:inputHidden value="#{bean.aField}" />
<h:commandButton value="Submit" action="#{bean.anAction}" />
</h:form>
マネージド Bean コード
@ManagedBean
@RequestScoped
public class Bean {
private String aField;
//constructor, getter and setter...
public void anAction() {
//do your form processing...
HttpRequestHandler httpRequestHandler = new HttpRequestHandler();
httpRequestHandler.handlePost(...); //send the arguments here
}
}
public class HttpRequestHandler {
public void handlePost(String ... parameters) {
//you do the Apache HttpClient POST handling here
//always create a class between your application and your third party libraries
//code adapted from HttpClient examples: http://hc.apache.org/httpcomponents-client-ga/examples.html
HttpClient httpclient = new DefaultHttpClient();
try {
HttpPost httpPost = new HttpPost(...);// your URL goes here
//do as you please with the HttpPost request
} finally {
httpclient.getConnectionManager().shutdown();
}
}
}
このジョブに Apache HttpClient ライブラリを追加したくない場合は、次のようURLConnection
にネイティブ Java クラスを使用できます: Java.net.URLConnection を使用して HTTP 要求を起動および処理する