问题描述
- 关于jquery封装的ajax传值到javaWEB后台问题。
-
前台用了jquery,后台用了 struts2框架。
前台:
$.ajax({
type : "POST",
url : "recmanager.action",
dataType : "json",
data : {
"manager" : $('#manager').val(),
"password":$('#password').val(),//"manager.name" : $('#manager').val(), //"manager.password":$('#password').val(), }, 后台: public class ManagerAction extends BaseAction{ private Manager manager; public String recManager(){ System.out.println(manager.getName()+" "+manager.getPassword()); return "success"; }
}
pojo:
public class Manager implements Serializable{private static final long serialVersionUID = 1L; public Manager(){ } private Integer id; private String name; private String password; private Integer level; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getLevel() { return level; } public void setLevel(Integer level) { this.level = level; }
}
问题:
前台的data:manager、password,怎样用struts2的特性跟后台的Manager对象属性绑定?
其中 前台我试过 manager.name/manager.password 这样传不行。
request.getParameter("manager.name");这样也为null,属性不带“.”符号可以通过
request.getParameter()取到。
解决方案
第一如果你的ajax传参用的是"manager" : $('#manager').val(), "password":$('#password').val(), 那么你最好将Action中的属性与表单中的属性一致就可以,就是把你manager对象里面属性包括get/set方法提取到action中。
第二如果你不想改后台可以把ajax传参的manager.id,manager.name,manager.password,manager.level;
第三可以使用ModelDriven数据模式
具体你可以看看struts2的传递数据三种方式,希望能帮到你
解决方案二:
后台给manager添加get/set方法了吗?
解决方案三:
用request.getParameter()自己封装吧。
解决方案四:
后台要写get、set方法
时间: 2024-08-02 13:31:01