我正在研究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);
}
<%
}
%>
}
直到警报(strUser)它的工作正常,但之后没有,这里做错了什么?
UPDATE -
好的,我明白了,它不会工作。任何人都可以告诉我如何通过使用Ajax请求来解析此代码,我之前从未使用过ajax请求... 1)在ConfigurationDAO中传递参数strUser并调用methord“getSkillSetList”以便它将填充DTO类并且2)返回一个来自SkillSetDTO的arraylist到jsp。
答案 0 :(得分:2)
这不起作用。您正在尝试在javascript中执行服务器端代码。服务器端代码将运行一次 - 在JavaScript运行之前(最初呈现页面时),但不会在onchange方法中重新运行。 可以使用服务器端代码来帮助动态构建javascript,但是您无法通过JavaScript与它进行交互。 如果您需要在JavaScript代码中与服务器进行交互,可以通过Ajax
进行