通过AJAX调用和struts2将数组传递给java类

时间:2017-03-16 16:46:30

标签: javascript java jquery ajax struts2

Javascript-AJAX调用

function assignTask(){
var formdata = "xyz";
var taskList = [];
$.each($("input[name='taskname']:checked"), function(){            
taskList.push($(this).val());
});
$.ajax({
type: "post",
data: {taskList:taskList},
url: "AssignTask" ,
traditional: true,
success: function (data)
{
 ........}
});
}

现在 var taskList 正在成功存储数组。因为我已经检查过了。 发送 数组taskList 时,问题发生在AJAX函数中。

struts.xml中

<struts>
<constant name="struts.custom.i18n.resources" value="ApplicationResources"/>
<package name="default" extends="struts-default" >
<action name="AssignTask" class="dto.Task" method="assignTasks">
<result name="success">jsp/TaskList.jsp</result>
</action>
</package>
</struts>    
使用方法 assignTasks()

dto.Task java class

public class Task extends ActionSupport {
private ArrayList<Task> taskList;
public ArrayList<Task> getTaskList() {
return taskList;}
public void setTaskList(ArrayList<Task> taskList) {
this.taskList = taskList;
}
public String assignTasks() {
System.out.println("Inside assign tasks..."+ taskList.size());
String result = "success";
return result;
}
}

当我在Netbeans中运行应用程序时,glassfish控制台会向我显示此错误:

Warning:   Could not find action or result
No result defined for action dto.Task and result input
at at com.opensymphony.xwork2.DefaultActionInvocation......
......

Google Chrome控制台向我显示此错误:

jquery.min.js:4 POST http://localhost:8080/EmployeeManagement/AssignTask 404 
(No result defined for action dto.Task and result input)

所以我的程序控件不会进入函数 assignTasks() ,当然将数组从AJAX函数传递到< strong> dto.Task java类通过 struts2 框架。

请帮我解决一下。

1 个答案:

答案 0 :(得分:0)

您可以尝试添加以下命名空间属性吗?

<package name="default" extends="struts-default" namespace="/">
...
</package>