var formdata = {}; formdata.backup = $("input[name='backup']:checked").val(); formdata.autobackManner = $("select[name='autobackManner'] option:selected").val(); formdata.partitionCount = $("select[name='partitionCount'] option:selected").val(); formdata.enable = $("input[name='enable']:checked").val(); if (formdata.backup == 'local') { formdata.local = {}; formdata.local.path = $('#local_path').val(); } else { formdata.ftp = {}; formdata.ftp.serverip = $("input[name='serverip']").val(); formdata.ftp.user = $("input[name='user']").val(); formdata.ftp.password = $("input[name='password']").val(); formdata.ftp.encoding = $("select[name='encoding'] option:selected").val(); } $.ajax({ url: '/sim/systemConfig/modifyLogBackupConfig?configId=log_backup_config', type: 'POST', data: JSON.stringify(formdata),//*****转换成JSON对象 dataType:'json', contentType:"text/javascript",//*****和application-servlet.xml配置相同 success: function(res){ } });
?
<mvc:annotation-driven> <mvc:message-converters register-defaults="false"> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> <bean class="org.springframework.http.converter.StringHttpMessageConverter"/> <bean class="org.springframework.http.converter.FormHttpMessageConverter"/> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <!-- *****自定义JSON返回类型***** --> <value>text/javascript;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
?
@RequestMapping("modifyLogBackupConfig") @ResponseBody public Result modifyLogBackupConfig(String configId,/*加入注解*/@RequestBody LogBackupConfig config){ Result result = new Result(true, "保存成功!"); return result; }
?
public class LogBackupConfig implements Serializable { private String backup; private String autobackManner; private String partitionCount; private boolean enable; private FTP ftp; private Local local; //*****提供无参构造函数*****// public LogBackupConfig() { super(); // TODO Auto-generated constructor stub } public String getBackup() { return backup; } public void setBackup(String backup) { this.backup = backup; } public String getAutobackManner() { return autobackManner; } public void setAutobackManner(String autobackManner) { this.autobackManner = autobackManner; } public String getPartitionCount() { return partitionCount; } public void setPartitionCount(String partitionCount) { this.partitionCount = partitionCount; } public boolean isEnable() { return enable; } public void setEnable(boolean enable) { this.enable = enable; } public FTP getFtp() { return ftp; } public void setFtp(FTP ftp) { this.ftp = ftp; } public Local getLocal() { return local; } public void setLocal(Local local) { this.local = local; } class FTP implements Serializable { private String serverip; private String user; private String password; private String encoding; //*****提供无参构造函数*****// public FTP() { super(); // TODO Auto-generated constructor stub } public String getServerip() { return serverip; } public void setServerip(String serverip) { this.serverip = serverip; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEncoding() { return encoding; } public void setEncoding(String encoding) { this.encoding = encoding; } } class Local implements Serializable { private String path; //*****提供无参构造函数*****// public Local() { super(); // TODO Auto-generated constructor stub } public String getPath() { return path; } public void setPath(String path) { this.path = path; } } }
?
以上代码注释部分是特别需要注意的。