2013-04-25 35 views
0

我正在創建一個dao dto struts架構 - 基本上我想在javascript中的每個更改函數中填充我的dto。我想下面的代碼---從javascript函數填充DTO類

function onchangefunction() { 
    var e = document.getElementById("userSelectList"); 
    strUser = e.options[e.selectedIndex].text; 
    alert(strUser); 
    strUser.toString(); 

    var x = document.getElementById("ToLB"); 
    var option = document.createElement("option"); 
    <% 
     String strUser = request.getParameter("strUser"); 

     ArrayList <SkillSetDTO> skillsetlst = (ArrayList <SkillSetDTO>) ConfigurationDAO.getInstance().getSkillSetList(strUser); 
     SkillSetDTO skillsetDTO = new SkillSetDTO(); 
     for (int i = 0; i < skillsetlst.size(); i++) { 
      skillsetDTO = (SkillSetDTO) skillsetlst.get(i); 
      String skillSet = skillsetDTO.getSkillsets(); 
    %> 
      option.text = "<%=skillSet%>"; 
      try { 
       // for IE earlier than version 8 
       x.add(option, x.options[null]); 
      } catch (e) { 
       x.add(option, null); 
      } 
    <% 
     } 
    %> 
} 

直到警報(strUser的)其工作正常,但不是在這之後,有什麼錯在這裏做什麼?

UPDATE--

好吧,我明白了,它不會工作。任何人都可以告訴我如何通過使用Ajax請求來解決此代碼,我從來沒有使用過Ajax請求之前... 1)傳遞參數strUser和調用方法ConfigurationDO中的「getSkillSetList」,以便它將填充DTO類和2)從SkillSetDTO將數組列表轉換爲jsp。

+0

您應該在操作中填充列表。你不需要Ajax。 – 2013-04-25 12:59:40

回答

2

這不起作用。您正試圖在您的javascript內執行服務器端代碼。服務器端代碼將運行一次 - 在JavaScript運行之前(當頁面初始呈現時),但不會在onchange方法中重新運行。 可以使用服務器端代碼來動態構建JavaScript,但不能通過JavaScript與其交互。 如果您需要使用JavaScript代碼與服務器交互,可以通過Ajax進行操作

+0

你能告訴我如何通過使用ajax解決代碼,我從來沒有使用ajax請求之前...... 1)在配置DAO調用方法getSkillSetList,以便它將填充DTO類和2)從DTO取回數組的jsp。 – NewBee 2013-04-25 05:31:55