miniUI使用以及遇到的一些问题

页面使用JSP页面,前端使用miniUI

miniUI的API地址:jQuery MiniUI V3.0 Api Documentation

miniUI的Demo展示地址:http://www.miniui.com/demo/index.html#src=datagrid/celledit.html

1.隐藏datagrid表单的分页栏

showPager="false"

2.关于input中的值没有传到后台

以task_id为例子,我这里需要隐藏相应控件。

首先JSP页面中的控件需要有class属性,对应miniUI,具体可以去官方文档上查询。

JSP页面-控件

<input class="mini-hidden" name="task_id" id="task_id" type="text" value="10002" />

JSP页面-脚本

    <script type="text/javascript">
		mini.parse();
		var form = new mini.Form("#form1");
		var grid = mini.get("srch_grid");
		var info = "";
		
		var task_id = mini.get("task_id").getValue();
		mini.get("task_id").blur(); //失去焦点
		
		$(function () {
			grid.load({
				params: mini.encode(form.getData(true)).replace(/\"/g, "'"),
				"task_id" : task_id
			});
		});
    </script>

后台的Action

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    //前置代码
    String task_id = request.getParameter("task_id");//获取到前台的input数值
}

3.JSON格式从前端传到后台出现了 双引号转义错误

报错为:must begin with '{' at character 1 of [{&quot;_state&quot;:&quot;modified;,&quot;id&quot;:2,&quot;vx&quot;:&quot;12&quot;}]

原因:后台获取到的格式有误。

以下为原本用来存储JSON的哈希数列

Map = new HashMap<String, Object>();
String params = request.getParameter("params");
Map = JSONObject.fromObject(params);

实际存储内容为多组数据的列表,应当为:

String params = request.getParameter("params");
JSONArray arr = JSONArray.fromObject(params);

前台的AJAX:

$.ajax({
    url:"../open.do?type=save",
    type:'post',
    data:{
            params: mini.encode(rows).replace(/\"/g, "'"),
            "id" : id
            },
            success: function (text) {
                grid.reload();
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(jqXHR.responseText);
            }
    });

4.java.lang.RuntimeException: error in dao:

ORA-01747: user.table.column, table.column 或列说明无效

表中的字段名使用了Oracle数据库的关键字,下面贴个查询关键字的链接,可以全选后通过word查询字段名:

Oracle 关键字大全_后端小王的博客-CSDN博客_oracle关键字

5.隐藏miniUI控件

//mini.getbyName("Foundation_treatment").hide();
window.document.all("cap_unsee").style.display="none";
//document.getElementById("Foundation_treatment").visible = false;
//$("Foundation_treatment").css("display","none");

//隐藏datagrid的列
<div field="tid" align="center" headerAlign="center" visible="false">序号</div>

6.设置input文本框为标签类型,无外框

<style type="text/css">
	    .asLabel .mini-textbox-border,
	    .asLabel .mini-textbox-input,
	    .asLabel .mini-buttonedit-border,
	    .asLabel .mini-buttonedit-input,
	    .asLabel .mini-textboxlist-border
	    {
	        border:0;background:none;cursor:default;
	    }
	    .asLabel .mini-buttonedit-buttons,
	    .asLabel .mini-buttonedit-button,
	    .asLabel .mini-textboxlist-close
	    {
	        display:none;
	    }
	    .asLabel .mini-textboxlist-item
	    {
	        padding-right:8px;
	    }    
    </style>

JSP页面:

<input name="username" id="username" class="mini-textbox asLabel"/>

7.JSP页面获取到当前时间

var thistime = new Date().toLocaleString();

将当前时间转化为年月日时分秒的代码:

function ChangeDateFormat(timechange) {
    if (timechange != null) {
        var year = timechange.getFullYear();
        var month = timechange.getMonth() + 1;
		var date = timechange.getDate();
		var hour = timechange.getHours();
		var minutes = timechange.getMinutes();
		var second = timechange.getSeconds();
		if (month < 10) {
            month = "0" + month;
		}
        if (date < 10) {
			date = "0" + date;
		}
		if (hour < 10) {
			hour = "0" + hour;
		}
		if (minutes < 10) {
			minutes = "0" + minutes;
		}
		if (second < 10) {
			second = "0" + second;
		}
		var time = year + "-" + month + "-" + date + " " + hour + ":" + minutes + ":" + second;
		return time;
	}
	return "";
}


var time_change=ChangeDateFormat(new Date());

8.miniUI获取值和设置值

var old_value = mini.getbyName("oldvalue").getValue();//获取值
mini.getbyName("oldvalue").setValue(null);//设置值

9.输出值

System.out.println();//后台输出值
alert();//提示框弹出值
console.log(data);//控制台输出值,用于输出json类型的变量
window.console.log(data);//IE浏览器输出

10.弹出框的url需要包含该页面所在的文件夹

mini.open({
				url:"../prp/info_editreason.jsp",
				title: "修改原因", 
				width: 450, 
				height: 400,
				onload: function () {
                    var iframe = this.getIFrameEl();
                    var data = {
                    		field:field,
           					Id:Id,
           					parm_name:parm_name
                        };
                    //调用弹出页面方法进行初始化
                    console.log(data);
                    iframe.contentWindow.SetData(data);
                },
                ondestroy: function (action) {
                    alert("关闭");
                }
			});

11.关闭弹出窗口

miniUI打开的窗口用window.close关闭无效, 应该用window.CloseOwnerWindow();

12.JS字符串变量转成JSON的两种方式

推荐第一种:

var sorts = ['婴儿产品','男士产品','护理产品','女士产品','全部产品'];
var num = [20,10,60,30,20];
var array = {};
for(var i = 0; i < sorts.length; i++){
    array[sorts[i]] = num[i];
}
console.log(array);
var json = JSON.stringify(array);
console.log(json);

第二种:

var sorts = ['婴儿产品','男士产品','护理产品','女士产品','全部产品'];
var num = [20,10,60,30,20];
var json = [];
var array = {};
for(var i = 0; i < sorts.length; i++){
    array['value'] = num[i];
    array['data'] = sorts[i];
    json.push(array);
    array = {};
}
console.log(json);
var json_arrays = JSON.stringify(json);
console.log(json_arrays);

13.Oracle设置主键ID自增,序列名和触发器名称不能过长

//序列
create sequence HISTORY_SEQ
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;

//触发器
create or replace trigger history_tr
before insert on EDIT_HISTORY
for each row
begin
select HISTORY_SEQ.nextval into :new.EDIT_ID from dual;
end history_tr;

14.将另一个表的内容全部插入到另一表中(B表内容插入到A表中)

insert into A(变量名a,变量名b)(select 变量名A,变量名b from B where 判断条件)

15.随机生成字符串

String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random=new Random();
String flag="";
for(int i=0;i<6;i++){
	int number=random.nextInt(62);
	flag += str.charAt(number);
}

16.Ajax基本格式

$.ajax({
    url: "../action.do?type=",
    dataType:'json',//使获取到的data为json类型
    type:'post'
    data:{
        id: id,
        name: name
    }
    success: function (data) {
               
	},
    error: function (jqXHR, textStatus, errorThrown) {
        alert(jqXHR.responseText);
    }
});

17.Oracle常见错误

①ORA-01756: quoted string not properly terminated(引号字符串未正确终止)

解决方案:查看是否有变量只有半边引号,或者是中文引号

②ORA-04098: trigger ‘xxx.xxx‘ is invalid and failed re-validation(触发器编译出现问题)

解决方案:打开命令行窗口,输入

Alter trigger 触发器名称 compile

出现鲜红色的错误提示后,再输入

show error

即可查看当前编译错误的原因

③ORA-00942: 表或视图不存在

④ORA-01861: literal does not match format string(字符串格式不匹配)

查看数据库里面相关的字段是否是string类型的

解决方案:常出现错误为变量是Date类型,需要在插入的时候加入日期转换

to_date('"+time+"', 'yyyy-mm-dd hh24:mi:ss')"

⑤ORA-00972: identifier is too long(变量值过长)

字段超过了Oracle本身设定的30个字符

解决方案:减少字符长度

⑥ORA-01722: 无效数字

⑦ORA-00917: missing comma(缺少逗号)

⑧ORA-00904: “ROWNUM_”:invalid identifier(标识符无效)

1.创建表时没有插入字段,查询时字段在表中不存在

2.字段名写错了

3.字符串常量使用了双引号

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值