Jquery ajax将用户定义的对象发布到Strut2操作
我试图将用户定义的对象发布到struts2的操作中,但我的操作中的对象仍然为null。有人能帮我吗?谢谢你的帮助 User.javaJquery ajax将用户定义的对象发布到Strut2操作,jquery,ajax,struts2,Jquery,Ajax,Struts2,我试图将用户定义的对象发布到struts2的操作中,但我的操作中的对象仍然为null。有人能帮我吗?谢谢你的帮助 User.java public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String user
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
这是我的行动
Login.java
public class Login extends ActionSupport {
private User user;
@Override
public String execute() throws Exception {
System.out.println(user.getUsername() + " - " + user.getPassword());
return "success";
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
jsp页面中的我的ajax调用:
$(function() {
var user = {'user.username': 'abc', 'user.password' : '123'};
//var user = {username: 'abc', password : '123'};
$.ajax({
type : 'POST',
url : 'login',
data : JSON.stringify(user),
//data: user,
contentType : 'application/json',
success : function(result) {
alert("hh");
}
});
});
struts.xml
<struts>
<constant name="struts.devMode" value="true" />
<package name="struts2jquery" extends="struts-default, json-default">
<action name="login" class="com.myapp.action.Login">
<result name="success">result.jsp</result>
</action>
</package>
</struts>
result.jsp
最后,我解决了它:D.只需删除ajax调用中的行contentType:“application/json”
。
现在的ajax调用是:
var u = {'user.username': 'abc', 'user.password' : '123'};
$.ajax({
type : 'POST',
url : 'login',
data: u,
//contentType: "application/json",
success : function(result) {
//alert("hh");
}
});
谢谢大家:D+1,拼写和格式都很好,有所有相关的部分,周围没有噪音,你开始的很好。。。顺便说一句,我发现奇怪的是,您正在执行一个AJAX调用(在完成其业务后应该保持在同一页面中),然后返回一个JSP文件。您可能希望返回一个JSON结果,将其解析到页面中,然后执行重定向或类似操作。。。AJAX调用返回的结果不能改变整个页面,这是标准调用的业务…感谢您的建议。我将返回一个JSON结果,但struts操作中没有我的post数据,所以我只返回一个jsp页面用于测试^^。什么?返回用于测试的json…:)并在每个setter(操作中的用户对象的setter,以及用户对象内部)中放置一个日志行,以查看发生了什么。是的,我想知道为什么struts无法将我的post数据映射到操作中的对象,而如果我使用struts标记,一切都可以正常工作。我正试图调试到struts框架中,但似乎很复杂@要在Eclipse中调试,请运行调试配置->远程Java应用程序,设置主机和调试端口(您的应用程序服务器必须在启用调试模式的情况下运行),然后按调试。然后设置断点并使用WebApp