日期:2014-05-17  浏览次数:20714 次

json、struts2、jquery 整合怎样传送类对象
本帖最后由 zs79198201 于 2013-06-01 13:11:28 编辑
整合发现类对象的值传不到后台去,其它单个数据如果在后台有对应的json的keyName getter 可以获取到相应的value。跪求各位大大~试了一天 辛辛苦苦才能用ajax 联通后台交换数据,难道后台还要把user类的属性拆开一个一个写getter? 

现在想到的可能的解决方案:
1.将整个json字符串传过去后台,再解析拆开。但是百度不到struts对于json字符相关的处理的教程,洒家无法了。
2.struts2有相应的处理方法提供,但是我不知道?

pps:难道是我json对类的传送写错了?不是{user:{key:value,key2:value2}}的格式?


 $("#rt-submit").click(function () { //“登录”按钮单击事件
            var jsonObj={user:{username : $("#rt-name").val()
            , email:  $("#rt-email").val()}
     ,msg:"test"};
     var jsonStr=JSON.stringify(jsonObj);
     var url="<%=basePath %>ajax/forget.action";

            $.post(url
             , {json:jsonStr} 
             ,function(data){
                     alert(data.msg);
             });
            });
       


public class forgetAction extends ActionSupport {
private User user;
private UserService userService = new UserService();
private String msg;
private String json;
/*省略getter  setter*/

public String forget() throws Exception {

System.out.println(json);
System.out.println(msg);
if (user !=null ){
                //查找数据库
user = userService.loadUserByNameAndEmial(user.getUsername(),user.getEmail());
}

boolean isSend = false;
Random r = new Random();    
int num = r.nextInt(999999);
                //发送随即生成的六位数字保存为新的密码并发送邮件
if (user !=null && !"".equals(user.getEmail())) {
user.setPassword(num+"");
userService.update(user);
String content = "恭喜忘记密码申请成功~ 已生成随机密码:"+num;
MailSenderInfo mailInfo = new MailSenderInfo();
mailInfo.setMailServerHost("smtp.qq.com");
mailInfo.setMailServerPort("25");
mailInfo.setValidate(true);
mailInfo.setFromAddress("16546145646" + "@qq.com");
mailInfo.setToAddress(user.getEmail());
mailInfo.setUserName("13465984654" + "@qq.com");
mailInfo.setPassword("111111");
mailInfo.setSubject("忘记密码申请");
mailInfo.setContent(content);
isSend = SimpleMailSender.sendTextMail(mailInfo);

}
if (isSend){
msg="申请成功,新密码已经发送到您的邮箱";
return SUCCESS;
}

addActionError("发送失败!请检查信息是否输入正确!");
msg="发送失败!请检查信息是否输入正确!";
return SUCCESS;
}


struts.xml