2016-10-04 73 views
0

我試圖調用一個應該返回一個XML文件的URL。 我想顯示這個XML文件。 現在我不知道如何撥打電話來獲取返回文件。 我用<p:commandButton process="@this" action="http://..." value="Test" />試了一下,但我得到2個警告。Primefaces調用URL並獲取數據

警告文件:找不到一個MIME類型,在你的web.xml 時的警告的ressource添加一個MIME類型的映射:無法找到或操作。

回答

0

試試這個:

action=#{yourBean.yourAction} 

裏面你的bean:

public void yourAction() { 

FacesContext fc = FacesContext.getCurrentInstance(); 
fc.getExternalContext().redirect("http://..."); 
fc.responseComplete(); 

} 

我不知道,如果是必要的,但你也可能想在p:commandButton

+0

我tryied這個了。我不想重定向。我想顯示XML中的內容 – TheNewby

+0

當您嘗試此操作時,出現了什麼問題? – Nikola

+0

作爲JSF頁面的一部分顯示?在應用程序的單獨頁面上顯示「plain」xml?或者它是應用程序之外的資源,因爲「http:// ...」會提示? – Nikola

0

您設置ajax=false需要使用restfull客戶端來獲取你的xml並解析它。

這是你的ActionListener的內容會從你的按鈕被稱爲:

Client client = ClientBuilder.newClient(new ClientConfig().register(LoggingFilter.class)); 
WebTarget webTarget = client.target("http://localhost:8080/JerseyDemos/rest").path("employees"); 

Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_XML); 
Response response = invocationBuilder.get(); 

Employees employees = response.readEntity(Employees.class); 
List<Employee> listOfEmployees = employees.getEmployeeList(); 

(從http://howtodoinjava.com/jersey/jersey-restful-client-examples/#get-list

+0

我試過了,但是它從起始頁返回了我的整個HTML,而不是來自我所調用的URL的XML – TheNewby