从 javascript 函数填充 DTO 类

Posted

技术标签:

【中文标题】从 javascript 函数填充 DTO 类【英文标题】:Populating DTO class from javascript function 【发布时间】:2013-04-18 20:33:00 【问题描述】:

我正在研究一个 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 的数组列表。

【问题讨论】:

您应该在操作中填充列表。你不需要 ajax。 【参考方案1】:

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

【讨论】:

你能告诉我如何使用 ajax 来解析代码吗,我以前从未使用过 ajax 请求... 1)在 ConfigurationDAO 中调用方法 getSkillSetList 以便它填充 DTO 类和 2)返回从 DTO 到 jsp 的数组列表。

以上是关于从 javascript 函数填充 DTO 类的主要内容,如果未能解决你的问题,请参考以下文章

从两个不同的对象填充 DTO

如何在具有枚举字段的实体上使用 JPA CriteriaQuery 填充 DTO 类字符串字段?

Javascript / Typescript:以角度将一个数组类转换为另一个数组类

具有不同查询选择列表的广义 DTO 填充方法

使用Setter方法填充大量参数

JavaScript - 从多个数组填充对象构造函数