0

我正在研究一个 dao dto struts 架构 - 基本上我想在 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);
            }
    <%
        }
    %>
}

直到 alert(strUser) 它的工作正常但不是在那之后,这里做错了什么?

更新 -

好的,我知道了,它不会工作。谁能告诉我如何通过使用 Ajax 请求来解决此代码,我以前从未使用过 ajax 请求... 1)在 ConfigurationDAO 中传递参数 strUser 和调用方法“getSkillSetList”,以便它填充 DTO 类和 2)取回一个从 SkillSetDTO 到 jsp 的数组列表。

4

1 回答 1

2

这行不通。您正在尝试在您的 javascript 中执行服务器端代码。服务器端代码将运行一次 - 在 JavaScript 运行之前(页面最初呈现时),但不会在 onchange 方法中重新运行。可以使用服务器端代码来帮助动态构建 javascript,但您不能通过 JavaScript 与之交互。如果您需要在 JavaScript 代码中与服务器交互,可以通过 Ajax 进行

于 2013-04-25T04:35:35.220 回答