实体类配置xml相关属性排序问题、json前后台交互
1、实体类配置一对多(list方式、关联属性可以动态排序)
<bag name="tformfieldSet" lazy="false">
<key>
<column name="T_FORM_ID" precision="22" scale="0" />
</key>
<one-to-many class="com.gdpe.ws.manage.pojo.table.Tformfield" />
</bag>
2、实体继承Comparable类可以根据需要对自身list内对象进行排序
重写public int compareTo(Object o) {
// 实现Comparator接口的方法
Tformfield t = (Tformfield) o;
String s1 = this.getKey();//
String s2 = t.getKey();//
return s1.compareTo(s2);// 比较两个字符串的大小
}
Collections.sort(tSet);
3、前台出入json字符串,后台转为json对象,并取出key和value
前台:<script type="text/javascript">
(function($){
$.fn.serializeJson=function(){
var serializeObj={};
var array=this.serializeArray();
$(array).each(function(){
if(serializeObj[this.name]){
if($.isArray(serializeObj[this.name])){
serializeObj[this.name].push(this.value);
}else{
serializeObj[this.name]=[serializeObj[this.name],this.value];
}
}else{
serializeObj[this.name]=this.value;
}
});
return serializeObj;
};
})(jQuery);
//提交表单
$("#btn").click(function() {
//var jsonuserinfo ={'tnameId':22,'name':'jim' , 'tel':20};
var jsonuserinfo =$("#myForm").serializeJson();
alert(jsonuserinfo);
jsonuserinfo = JSON.stringify(jsonuserinfo);
alert(JSON.stringify(jsonuserinfo));
$.ajax({
type:"POST",
dataType:"JSON",
url:"<%=request.getContextPath()%>/formAction_addTformfield.action",
data:{'str':jsonuserinfo},
success:function (data){
if(data == 1){
alert("保存成功");
}else{
alert("保存失败");
}
}
});
});
</script>
后台: String jsonStr = request.getParameter("str");
JSONObject jsonJ = JSONObject.fromObject(jsonStr);
String tnameId=jsonJ.getString("tnameId");
Tname tn=tnameService.findTnameById("com.gdpe.ws.manage.pojo.table.Tname", Long.parseLong(tnameId));
//插入中间表
Tform tf=new Tform();
tf.setTname(tn);
tformService.add(tf);
Iterator itkey=jsonJ.keys();
while (itkey.hasNext()) {
String key = itkey.next().toString();
String value = jsonJ.getString(key);
if(!key.equals("tnameId")){
Tformfield tfd=new Tformfield();
tfd.setKey(key);
tfd.setValue(value);
tfd.setTform(tf);
tformfieldService.add(tfd);
}
}