2017-03-09 61 views
0

我正在與java + html工作的jsp文件。我希望我的選擇列表能夠將一部分java代碼中的變量int k更改爲out.println我已完成的Google餅圖的不同數據集。到現在爲止,我只知道如何創建一個簡單的選擇列表。 我應該收集哪些其他信息或技巧? 在此先感謝。如何使java響應我的html選擇列表

<select name="monthpick" id="monthpick"> 
    <option value="0">Jan16</option> 
    <option value="1">Feb16</option> 
    <option value="2">Mar16</option> 
</select> 

我想要的清單能值傳遞給ķ,這樣我可以選擇哪些數據集我想要的。

<% 
String columnName = pchart.getColumnHeader(k); 
String[][] pdata = pchart.getPieChartData(columnName, rowTitle); 
for (int i=0;i<pdata.length;i++){ 
     out.println("["); 
     for (int j=0;j<pdata[i].length;j++){  
      //...many out.println() 

     } 
    } 
%> 

僅供參考,循環會的out.print某事像下面的餅圖:

['AA', 31578049.4], 
['BB', 8668926.34], 
['CC', 181917208.64], 
['GG', 164748309.85], 
['NN', 0], 
['PA', 0], 

回答

0

你真的不能做你正在嘗試做你正在嘗試做的方式它。

select和scriptlet代碼都成爲呈現發送到後端瀏覽器的HTML的源代碼。

但是,您可以通過幾種不同的方法來完成。

選項1.您可以將您的選擇提交給服務器以獲取餅圖數據作爲帖子或進入表單提交。然後您可以接收數據並使用JavaScript生成輸出。您也可以使用ajax調用來獲取餅圖數據,然後使用JavaScript來呈現餅圖數據。

選項2. 您可以從表單發送請求到後端。如果變量k已設置,則可以渲染該值。

基本上你可以發送您的查詢,像這樣

http://myhost/some/mypage.jsp?colorpick=Jan16。還是做一個普通表單提交

上mypage.jsp

<% 

if (request.getParameter("colorpick") != null) { 
    String k = (String)request.getParameter("colorpick"); 
    String columnName = pchart.getColumnHeader(k); 
    String[][] pdata = pchart.getPieChartData(columnName, rowTitle); 
    for (int i=0;i<pdata.length;i++){ 
     out.println("["); 
     for (int j=0;j<pdata[i].length;j++){  
      //...many out.println() 

     } 
    } 
} 


%> 

選項3.您可以在JavaScript塊預加載的數據,然後通過JavaScript訪問數據。這不會是最佳的,但它會工作。我說這不會是最佳的,因爲會有大量數據存儲在JavaScript變量中。

我認爲關鍵的解決方案是使用JavaScript來處理這種操作。您的瀏覽器無法在瀏覽器中執行Java代碼。它在將請求發送到客戶端之前執行它。所以你的Java代碼不是好的客戶端。

我希望這會有所幫助。

+0

你好,FernandoZ,如果我有一個新的想法,我用循環來生成我需要的所有餅圖(說10)會怎麼樣。然後,我創建了選擇列表和js函數來控制'style = display:none'來控制我要顯示的圖表,它聽起來不錯嗎? – KenyKeny

+0

是的,你可以做到這一點。 – FernandoZ