私はこの質問が何度も聞かれたことを知っています、私はそれらの多くを読みました、しかし私は基本的なものが欠けていると思うので、それは私にとってはうまくいきません。
(プロジェクトはJSF2、Netbeans 7.3beta、Glassfish3 ..、およびWCFで記述されたWebサービスにあります)私はすでに何をしましたか?
- JSF2プロジェクトを作成します。
- プロジェクト、新しいWebサービスクライアントを右クリックします。WSDLURLを入力します。終了
- ManagedBeanを作成し、それを開きます。Webサービスから「DoWork」メソッドをドラッグアンドドロップします。
私の単純なコードを見てください(私はindex.htmlを持っています、そこで私は私のmanagedbeanで作成されたDataTableを表示します)index.html
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui"> <h:head><title>IGNORED</title></h:head> <h:body> <ui:composition template="/templates/masterPage.xhtml"> <ui:define name="content"> <h:form> <h3>and #{bean.tst}!</h3> <p:dataTable value="#{bean.rows}" var="row"> <p:columns value="#{bean.columns}" var="column" headerText="#{bean.headers[column]}"> #{row[column]} </p:columns> </p:dataTable> </h:form> </ui:define> </ui:composition> </h:body> </html>
および..bean.java
@Named(value = "bean")
@SessionScoped
public class Bean implements Serializable {
@WebServiceRef(wsdlLocation = "WEB-INF/wsdl/localhost_62599/TestService.svc.wsdl")
private TestService service;
... // list, maps.. not important for this example
public Bean() {
columns = new ArrayList<String>();
rows = new ArrayList<Map<String, Object>>();
headers = new HashMap<String,String>();
// Columns:
for(int i = 0 ; i < 4 ; i++)
{
String column_id = "c" + i;
String column_name = "Column name " + i;
columns.add(column_id);
headers.put(column_id, column_name);
}
// Rows:
for(int i = 0 ; i < 100 ; i++)
{
Map<String,Object> m = new HashMap<String,Object>();
m.clear();
for(int j = 0 ; j < 4 ; j++)
{
**// HERE IT DOESNT WORK in table i've got Content:Null**
m.put("c" + j, "Content:" + Tst);
}
rows.add(m);
}
}
private String Tst;
public String getTst() {
return doWork("Test");
}
private String doWork(java.lang.String str) {
DataTable.ITestService port = service.getBasicHttpBindingITestService();
return port.doWork(str);
}
}
管理対象Bean内で使用できないのはなぜですか?私は何を間違えましたか?DataTableに入力できるように、Beanで使用したいと思います...