jsp中一些jQuery用法以及struts2标签的使用

来源:互联网 发布:手机发帖软件 编辑:程序博客网 时间:2024/06/06 05:39

jsp页面中的初始化方法,类似于flex中的creationComplete方法,是在页面加载完成之后就调用的方法,有两种写法:

第一种:

window.onload=function(){   //在此进行初始化方法};

这种方法有个局限性,就是在一个jsp中只能有一个该方法。而且该方法需要在页面的所有东西加载完成之后才运行,包括图片。
还有就是利用jQuery的方法进行初始化方法:

第二种:

$(document).ready(function() {   //在此进行初始化的方法编写});

该方法没有数量上的局限性,可以编写多个该方法,而且还有简写形式。而且该方法是在页面的DOM结构绘制完毕后就执行,不必等到加载完毕。

第二种的简写形式:

$(function(){    //在此进行初始化方法编写});

在初始化方法中对table进行操作,得到table中的某一列:

$(function() {//得到ID为grid的TABLEvar tab = document.getElementById("grid");//得出Table的所有行,rows[i].cells:得到每行的所有列var rows = tab.rows;for ( var i = 1; i < rows.length; i++) {    var plan_count = rows[i].cells[4].innerHTML;//计划数量     var fact_count = rows[i].cells[7].getElementsByTagName("input")[0].value;//实际数量     if (plan_count == fact_count)//当计划数量和实际数量相等时实际数量不可编辑 rows[i].cells[7].getElementsByTagName("input")[0].readOnly = true;//设置只读     }});

利用struts2的标签如何去除Action中的值,前提是这个值在Action中必须有get方法。

<s:property value="OGNL表达式"/>
每次请求action转发回来后,当前页面会有一个valueStack,action里的全部信息都保存在里面,比如你action里有个字段username(提供的有get方法)
则你在<s:property value="username"/>就能直接取到值。如果是对象ognl还可以支持导航:<s:property value="user.username"/>
同时当前页面还保存的有ActionContext(不知道怎么翻译...),跟valueStack一样,也可以直接取值,但是前面要加个#号以区别。
request、application对象都在actionContext里面,可以这么取requst里的值<s:property value="#request.username"/>

 

jQuery的Ajax写法:

$.post(url, {  '参数1' : a,  '参数2' : b,  ... }, function(data, status) {  //data为Action中传过来的数据,字符串或为html字符串;status为状态,成功为success  alert("数据:" + data + "\n状态:" + status); });
其中url为调用的Action的路径(我后台用的是struts2,有用PHP和asp的或jsp的,我这里就不介绍了);紧跟着的其实是一个参数数组,用大括号包起来的数组;然后是回调函数,函数中有连个参数,第一个data为Action中返回的数据,status为返回的状态数据。下面附上Action中的部分代码:

...HttpServletResponse repon = getHttpResponse();//得到Response对象try {repon.getWriter().write("success");//向response中写入要返回的信息,在此可以拼接html(这个数据就是前面回调函数中的data)} catch (IOException e) {e.printStackTrace();}

那向response中写入返回信息时,不能转发,转发的话会返回你转发的页面。还有就是有需要字符转义的话可以用一下语句:repon.setCharacterEncoding("UTF-8");写入之后最好进行刷新:repon.getWriter().flush();。

给table中所有的td添加鼠标点击事件:

$(function(){$("td[name*='confirm']").click(function() {//获得系统当前时间     var curDate = new Date();<span style="white-space:pre"></span>})}

一下再附上一个在js中得到当前时间的函数,格式为(yyyy-mm-dd)

//得到当前时间字符串(年-月-日)function CurentTime(){     var now = new Date();    var year = now.getFullYear();       //年    var month = now.getMonth() + 1;     //月    var day = now.getDate();            //日    //var hh = now.getHours();            //时    //var mm = now.getMinutes();          //分    var clock = year + "-";    if(month < 10)        clock += "0";    clock += month + "-";    if(day < 10)        clock += "0";    clock += day + " ";       //if(hh < 10)        //clock += "0";    //clock += hh + ":";    //if (mm < 10) clock += '0';     //clock += mm;     return(clock); } <pre name="code" class="javascript">//对象转json对象var jsonstr = {<span style="white-space:pre"></span>"XX" : "XX","XX" : "XX"};var param = $.toJSON(jsonstr);
//js中得到项目的发布路径var url = ${pageContext.request.contextPath}
//利用document向表格中动态添加行和列var cost_table=document.getElementById("表格ID");var cost_rowObj=cost_table.insertRow(-1);//括号中的是第几行也就是添加的位置,-1为倒数第一行,-2为倒数第二行var cost_cell1Obj=cost_rowObj.insertCell(-1);var cost_cell2Obj=cost_rowObj.insertCell(-1);var cost_cell3Obj=cost_rowObj.insertCell(-1);var cost_cell4Obj=cost_rowObj.insertCell(-1);//一共添加4列,每列都添加到最后一个cost_cell1Obj.innerHTML = "<input name='sel_radio' type='checkbox'>";//利用document向列中添加内容

下面给出一个小写数字转换为汉字的方法,如100-->壹佰元整:

/* * 功能:将货币数字(阿拉伯数字)(小写)转化成中文(大写) *  * 参数:Num为字符型,小数点之后保留两位,例:Arabia_to_Chinese("1234.06") 说明:1.目前本转换仅支持到 拾亿(元) * 位,金额单位为元,不能为万元,最小单位为分 2.不支持负数 */function numtochinese(Num) {for (i = Num.length - 1; i >= 0; i--) {Num = Num.replace(",", "")// 替换数据中的“,”Num = Num.replace(" ", "")// 替换数据中的空格}Num = Num.replace("¥", "")// 替换掉可能出现的¥字符if (isNaN(Num)) {// 验证输入的字符是否为数字//alert("请检查小写金额是否正确");return;}// ---字符处理完毕,开始转换,转换采用前后两部分分别转换---//part = String(Num).split(".");newchar = "";// 小数点前进行转化for (i = part[0].length - 1; i >= 0; i--) {if (part[0].length > 10) {//alert("位数过大,无法计算");return "";}// 若数量超过拾亿单位,提示tmpnewchar = ""perchar = part[0].charAt(i);switch (perchar) {case "0":tmpnewchar = "零" + tmpnewchar;break;case "1":tmpnewchar = "壹" + tmpnewchar;break;case "2":tmpnewchar = "贰" + tmpnewchar;break;case "3":tmpnewchar = "叁" + tmpnewchar;break;case "4":tmpnewchar = "肆" + tmpnewchar;break;case "5":tmpnewchar = "伍" + tmpnewchar;break;case "6":tmpnewchar = "陆" + tmpnewchar;break;case "7":tmpnewchar = "柒" + tmpnewchar;break;case "8":tmpnewchar = "捌" + tmpnewchar;break;case "9":tmpnewchar = "玖" + tmpnewchar;break;}switch (part[0].length - i - 1) {case 0:tmpnewchar = tmpnewchar + "元";break;case 1:if (perchar != 0)tmpnewchar = tmpnewchar + "拾";break;case 2:if (perchar != 0)tmpnewchar = tmpnewchar + "佰";break;case 3:if (perchar != 0)tmpnewchar = tmpnewchar + "仟";break;case 4:tmpnewchar = tmpnewchar + "万";break;case 5:if (perchar != 0)tmpnewchar = tmpnewchar + "拾";break;case 6:if (perchar != 0)tmpnewchar = tmpnewchar + "佰";break;case 7:if (perchar != 0)tmpnewchar = tmpnewchar + "仟";break;case 8:tmpnewchar = tmpnewchar + "亿";break;case 9:tmpnewchar = tmpnewchar + "拾";break;}newchar = tmpnewchar + newchar;}// 小数点之后进行转化if (Num.indexOf(".") != -1) {if (part[1].length > 2) {//alert("小数点之后只能保留两位,系统将自动截段");part[1] = part[1].substr(0, 2)}for (i = 0; i < part[1].length; i++) {tmpnewchar = ""perchar = part[1].charAt(i)switch (perchar) {case "0":tmpnewchar = "零" + tmpnewchar;break;case "1":tmpnewchar = "壹" + tmpnewchar;break;case "2":tmpnewchar = "贰" + tmpnewchar;break;case "3":tmpnewchar = "叁" + tmpnewchar;break;case "4":tmpnewchar = "肆" + tmpnewchar;break;case "5":tmpnewchar = "伍" + tmpnewchar;break;case "6":tmpnewchar = "陆" + tmpnewchar;break;case "7":tmpnewchar = "柒" + tmpnewchar;break;case "8":tmpnewchar = "捌" + tmpnewchar;break;case "9":tmpnewchar = "玖" + tmpnewchar;break;}if (i == 0)tmpnewchar = tmpnewchar + "角";if (i == 1)tmpnewchar = tmpnewchar + "分";newchar = newchar + tmpnewchar;}}// 替换所有无用汉字while (newchar.search("零零") != -1)newchar = newchar.replace("零零", "零");newchar = newchar.replace("零亿", "亿");newchar = newchar.replace("亿万", "亿");newchar = newchar.replace("零万", "万");newchar = newchar.replace("零元", "元");newchar = newchar.replace("零角", "");newchar = newchar.replace("零分", "");if (newchar.charAt(newchar.length - 1) == "元"|| newchar.charAt(newchar.length - 1) == "角")newchar = newchar + "整"return newchar;}







 

不断更新...

 

 

0 0
原创粉丝点击