-1
내 module
에서 JSON 데이터를 가져 오지 못했습니다. Course
선택 상자에서 코스 이름을 선택하면 선택 상자.Struts2 프로젝트의 JSP 페이지에서 json 데이터를 서버에서 읽는 방법은 무엇입니까?
내 코드가 동작 클래스 서버 쪽을 칠 수있다. 내 유일한 문제는 modulelist
필드를 module
선택 상자에 읽는 것입니다.
struts.xml
<package name="json" namespace="/" extends="json-default">
<action name="ajaxAction" class="com.admin.AddTestAction">
<result type="json" />
</action>
</package>
Struts2 Action 클래스 0123에서
package com.admin;
import java.util.ArrayList;
import java.util.List;
import com.db.DAO;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class AddTestAction extends ActionSupport {
List<String>courselist= new ArrayList<String>();
List<String>modulelist= new ArrayList<String>();
String courseName;
String module;
public String execute()
{
System.out.print("execute method called from TestAction");
DAO dao= new DAO();
courselist=dao.getCourses();
modulelist.add("select module");
if(getCourseName()!=null) {
System.out.print("course name is:"+getCourseName());
int id=dao.getCourseId(getCourseName());
modulelist=dao.getModules(id);
for(int i=0;i<modulelist.size();i++) {
System.out.println(modulelist.get(i));
}
}
return SUCCESS;
}
public List<String> getCourselist() {
return courselist;
}
public void setCourselist(List<String> courselist) {
this.courselist = courselist;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public List<String> getModulelist() {
return modulelist;
}
public void setModulelist(List<String> modulelist) {
this.modulelist = modulelist;
}
public String getModule() {
return module;
}
public void setModule(String module) {
this.module = module;
}
}
addTest.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript">
function loadmodule() {
alert("Handler for Select Course called.");
var course = $("#course").val();
$.getJSON('ajaxAction', {
courseName: course
},
function(jsonResponse) {
var select = $('#module');
select.find('option').remove();
$.each(jsonResponse.stateMap, function(key, value) {
$('<option>').val(key).text(value).appendTo(select);
});
});
}
</script>
</head>
<body>
<s:select name="course" id="course" list="courselist" headerValue="--select course--" headerKey="-1" label="Choose Course" onchange="loadmodule();"></s:select>
<s:select name="module" id="module" list="modulelist" label="choose module"></s:select>
</body>
<html>
''jsonResponse'에서 무엇이 반환됩니까? –
실제로 모듈 선택 상자에는 아무 것도 표시되지 않습니다. 내 스택 추적을 확인하십시오. – user3622530
스택 추적에 표시된 종속성이 누락되었습니다. –