jfinal学习笔记,ajax,前台转义,后台插入修改

  • 【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】
  • 【创作不易,点个赞就是对我最大的支持】

前言

仅作为学习笔记,供大家参考
总结的不错的话,记得点赞收藏关注哦!

调接口转JSON对象

		String flag=HttpRequestUtils.sendPost(url,param);
		JSONObject objects = JSON.parseObject(flag);
		String state=objects.get("state").toString();

获取当前用户对象

		Subject subject=SecurityUtils.getSubject();
		Session session=subject.getSession();
		//获取session中的Record对象
		Record um=(Record)session.getAttribute(CommonConstant.SESSION_USER);

无model限制查询

  //两种写法第一种是数据库id字段是ID
  List<Record> typeList = Db.find(“select * from XXX”);
  //第二种,不是默认id,则可以自行设置
	Db.findById(String tableName, String primaryKey, Object... idValue)

前台转义

 '<span οnclick="javascript:addtorole(\''+row.id+'\',\''+row.name+'\')">添加</span>';

动态下拉框

<@for(corp in list){@>
<option value="${corp.id}" ${model.corpId==corp.id?'selected="selected":'''}>${corp.name}</option>
<@}@>

获取下拉框的选中的值


<script>
$(document).ready(function(){
        $("select").val(2);//设置第2节被选中
        $("select").get(0).selectedIndex=2;//下标从0开始,即下标为2选中的是第3个option
	
	//select的change事件
	$("select").change(function(){
            alert($("select").val());//选中的值,对应<option>标签里面的value属性
            alert($("select option:selected").text());//选中的文本值(1)
            alert($("select").find("option:selected").text());//选中的文本值(2)
	})
});

 

获取ajaxForm传到后台的表单

//后台
AppModel model = getReqModel();
unitModel.set("contactor",unitModel.getStr("contactor")).set("phone",unitModel.getStr("phone"));
//前台js
x.ajaxForm($("#fm"), "/xcUnit/save", function(d) {
			layer.close(index);
			if (d.flag == 0) {
				layer.msg(d.msg, {icon : 6,time:500}, function() {
					parent.obj.ajax.reload(null,false);
					parent.layer.closeAll();
				});
			} else {
				layer.msg("保存产生错误:" + d.msg, {icon : 3});
			}
		});
	}

查询列表

<script type="text/javascript">
var x;var obj; 
$(function(){
	x = new App();
	obj=$('#obj').DataTable({
	    searching: false,
	    "ordering": false,
	    "serverSide": true,
	    'iDisplayLength': 5,
	    bLengthChange: false,
	    ajax:{
			url : '/sysuniloginuser/getUnitsByPid',
			type : "post",
			data : {pId:31}
		},
	    columns: [
					{"data" : "name"},
					{"data" : "id","sClass" : "text-center"}
		],
		columnDefs:[
			{
				targets:0,
				render:function(data, type, row, meta){
					return data;
				}
			},
			{
				targets:1,
				render:function(data, type, row, meta){
					var sUnit="";
					/* if(data!=null){
						for(i=0;i<data.length;i++){
							sUnit+=data[i].shortName+"<br/>";
						}
					} */
					let btn ='<span style="color:blue;cursor:pointer" οnclick="javascript:addtorole(\''+row.id+'\',\''+row.name+'\')">添加</span>';
					return btn; 
				}
			}
		],
	});
});
</script>

ajax提交

function addtorole(unitId,name){ 
	//获取一级单位的父级id
	var pId=$("#pId option:selected").val(); 
	var url="/xcUnit/save";
	var data={"unitId":unitId,"name":name,"pId":pId};
	$.ajax({
		url:url,
		type:'post',
		data:{
			"unitId":unitId,"name":name,"pId":pId
		},
		dataType:'json',
		success:function(result){
			if(result.flag == 0){
				layer.msg("添加成功",{icon: 1,time:500},function(){
					parent.location.reload(true);
				});
			}else{
				layer.msg(d.msg);
			}
		}
	})

后台插入、修改

 public void save(){
		UnitModel unitModel=new UnitModel();
		//获取单位id
		Integer id=getParaToInt("unitId");
		//获取单位名称
		String name=getPara("name");
		//获取父级id
		Integer pId=getParaToInt("pId");
		//查询单位是否存在
		Integer res=unitModel.findUnitByid(id);
		try {
			//如果存在则修改
			if(res>0){
				unitModel.set("id",id).set("pId",pId).set("fullName",name);
				if(unitModel.update()) {
					renderJson();
				}
			}else{
				unitModel.set("id",id).set("pId",pId).set("fullName",name);
				if(unitModel.save()) {
					renderJson();
				}
			}
		}catch (Exception e){
			renderJson(1,"添加失败!");
		}

	}

(通过单位性质id查询把所有的市一级单位、下属单位、县区一级单位)

	/**
	 * 
	* @Title: findUnitsByUnitType 
	* @author 康凤伟 
	* @Description: TODO (通过单位性质id查询把所有的市一级单位、下属单位、县区一级单位)  
	* @param @param typeId
	* @param @return    参数  
	* @return List    返回类型  
	* @throws
	 */
	public void findUnitsByUnitType(){
		String typeId=getPara("typeId");
		if(typeId.equals("")|| typeId.equals("null")) {
			typeId="-1";
		}
		if(StrKit.isBlank(typeId)){
			renderAPI(10003);
		}else{
			List<UnitModel> list =null;
			//如果单位性质为未选择,UNITTYPE字段有可能为0或者null isDeleted
			if(typeId.equals("0")) {
				list = UnitModel.dao.findByWhereAndColumns("ISDELETED ,UNITID " + O.cf("id") + ",PID " + O.cf("pId")
				+ ",UNITNAME " + O.cf("name") + ",UNITSHORTNAME"+O.cf("shortName")+",UNITPATH" + O.cf("parentIds") + " ",
				" where ISDELETED=0 and (UNITTYPE IS NULL OR UNITTYPE IN("+typeId+") ) order by PID");
			}else if (typeId.equals("-1")){
			list = UnitModel.dao.findByWhereAndColumns("ISDELETED ,UNITID " + O.cf("id") + ",PID " + O.cf("pId")
			+ ",UNITNAME " + O.cf("name") + ",UNITSHORTNAME"+O.cf("shortName")+",UNITPATH" + O.cf("parentIds") + " ",
			" where ISDELETED=0  order by PID");
			}else {
				list = UnitModel.dao.findByWhereAndColumns("ISDELETED,UNITID " + O.cf("id") + ",PID " + O.cf("pId")
				+ ",UNITNAME " + O.cf("name") + ",UNITSHORTNAME"+O.cf("shortName")+",UNITPATH" + O.cf("parentIds") + " ",
				" where ISDELETED=0 and UNITTYPE IN("+typeId+") order by PID");
			}
			for (int i =0; i < list.size();i++) {

				String parentIds=list.get(i).get("parentIds");
				//s代表'>',如果是县区一级单位有三个>,如果是市级一级单位有两个>
				int s=0;
				for (int j =0; j < parentIds.length();j++) {
					String res=parentIds.subSequence(j, j+1).toString();
					if(res.equals(">")) {
						s=s+1;
					} 
				}
				if(s==2 || s==1) {//市级单位不做任何操作
					
				}else if(s==3) {//有可能为县区
					//先判断是否包含县区3773
					if(parentIds.indexOf(">3773>")==-1) {
						list.remove(i);
						i--;
						if(i==0) {
							i=0;
						}
					}  
				}else {//部门单位移除
					list.remove(i);
					i--;
					if(i==0) {
						i=0;
					}
				}
			}
			renderAPI(list);
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值