<a href="http://ecuatmapps.taikang.com/ecsw/wxlist.jsp?openid='${opneid}'" data-role="button" data-theme="k">
在有些时候会出现页面跳转不过去,即在本页面跳转(http://ecuatmapps.taikang.com/ecsw/CourtLove.jsp#/ecsw/wxlist.jsp?openid='null'在原地址后加#号拼接跳转)。跳转页面表现为 JS或CSS没加载成功的样子!
可以尝试添加 rel="external" 属性,表示此链接是打开一个新页面,就不会存在这种问题了
有时候会出现从Servlet跳转到JSP页面时JS和Css样式不加载,但是直接跳转页面时样式正式加载,可以检查下看引用的JS和Css样式是否是相对路径,如果是的话,改成绝对路径应该就ok了 。
在使用js或者jQuery获取控件(例如:button、checkbox、radiobutton等)的值时,也是需要先刷新,否则无法获取到最新的值。(http://blog.csdn.net/zht666/article/details/8560765)
2.关于JSP页面的JAVA小脚本
在同一个JS页面,所有的小脚本是默认在同一个小脚本下,抽象的来说就是同一个JSP页面的小脚本的JAVA代码相当于在同一个类中,所以书写多段小脚本是要注意变量的使用和命名。
JQuery中,$("id").attr("checked",false/"checked");设置复选框的选中与取消。
3.JS判断操作系统
function detectOS() {
var sUserAgent = navigator.userAgent;
var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel");
if (isMac) return "Mac";
var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
if (isUnix) return "Unix";
var isLinux = (String(navigator.platform).indexOf("Linux") > -1);
var bIsAndroid = sUserAgent.toLowerCase().match(/android/i) == "android";
if (isLinux) {
if(bIsAndroid) return "Android";
else return "Linux";
}
if (isWin) {
var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;
if (isWin2K) return "Win2000";
var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 ||
sUserAgent.indexOf("Windows XP") > -1;
if (isWinXP) return "WinXP";
var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;
if (isWin2003) return "Win2003";
var isWinVista= sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;
if (isWinVista) return "WinVista";
var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;
if (isWin7) return "Win7";
}
return "other";
}
4.忽略MyEclipse中的JSP 以及 @override报错
忽略JSP报错:windows-preferences-MyEclipse Enterprise Workbench -Validation中 Build下的选项全去掉。重新编译
@override报错:这个是JDK5.0的一个BUG,把JDK版本改成1.6 然后重新编译,如果还是报错那么:windows-preferences-compiler- Compiler compliance level 改成6.0
5.main方法无法运行
java.lang.UnsupportedClassVersionError: Bad version number in .class file
造成这种过错是ni的支撑Tomcat运行的JDK版本与支撑application运行的JDK版本不一致导致的.
把它们的JDK版本改成一致步骤如下:
1.Window --> Preferences -->Java --> compiler中的compiler compliance level对应的下拉菜单中选择JDK版本.
2.Window --> Preferences -->MyEclipse --> Servers -->Tomcat --> Tomcat n.x -->JDK中的Tomcat JDK name下的下拉菜单中选择自身电脑上安装的JDK版本(必需与步骤1中的JDK版本一致).
6.JQuery 简单的弹出框代码
<strong><span style="font-size:18px;"><span style="font-size:14px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>弹窗</title>
<style type="text/css">
body {
margin: 0;
padding: 0;
}
#bg {
background: #000;
position: absolute;
left: 0;
top: 0;
filter: "Alpha(opacity=20)";
opacity: 0.2;
display: none;
}
#win {
width: 200px;
height: 200px;
position: absolute;
left: 50%;
top: 50%;
margin: -100px -100px 0;
border: 4px #F00 solid;
background: #FFF;
display: none;
}
</style>
<script type="text/javascript" src="/TKWeChatYL/zh_CN/js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
function WinTip(){
var win=new WinSize();
var Tip=$("#bg");
Tip.width(win.W+"px");
Tip.height(win.H+"px");
alert(Tip.css('display'));
if(Tip.css('display')=="block"){
Tip.hide();
$("#win").hide();
}else{
Tip.show();
$("#win").show();
}
}
function WinSize() //函数:获取尺寸
{
var winWidth = 0;
var winHeight = 0;
if (window.innerWidth)
winWidth = window.innerWidth;
else if ((document.body) && (document.body.clientWidth))
winWidth = document.body.clientWidth;
if (window.innerHeight)
winHeight = window.innerHeight;
else if ((document.body) && (document.body.clientHeight))
winHeight = document.body.clientHeight;
if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth)
{
winHeight = document.documentElement.clientHeight;
winWidth = document.documentElement.clientWidth;
}
return{"W":winWidth,"H":winHeight}
}
</script>
</head>
<body>
<a href="javascript:;" οnclick="WinTip()">弹出</a>
<div id="bg"></div>
<div id="win">
<input type='radio' name='usercode' value='aaa'>
aaa
<input type='radio' name='usercode' value='bbb'>
bbb
<a href="javascript:;" οnclick="WinTip()">确认</a>
</div>
</body>
</html></span></span></strong>
转载的别人的,但是源码地址找不到了。。。。
7.JQuery AJAX List与Json的转换
<span style="font-size:18px;"><strong><span style="font-size:14px;">List list_usercode = document.getRootElement().selectNodes("//weixinService/returnItem/usercode");
List<String> list = new ArrayList<String>();
for (int i = 0; i < list_usercode.size(); i++) {
list.add(((Element)list_usercode.get(i)).getText().toString());
}
String json = JSONArray.fromObject(list).toString();
out.print(json);
request.setAttribute("ERROR", "");</span></strong></span>
关于重新获取了一次list,是由于selectNodes获取的List集合是Element对象的集合JSONArray.fromObject(list) 无法进行转换
JSP 代码
<strong><span style="font-size:18px;"> $.post("/TKWeChatYL/CheckByEButler",
{"identityType":identityType,"identityNo":identityNo,"phoneNum":phoneNum},
function(data){
var obj = eval( "(" + data + ")" ).toString();//转换后的JSON对象
var strs= obj.split(",");
if(strs.length>0){
alert(1);
for(var i = 0;i<strs.length;i++){
divE.innerHTML += "<input type='radio' name='usercode' value='"+strs[i]+"'>"+strs[i];
}
}
},"text");</span></strong>
8.判断密码为非空,并且由6~12为数字和字母的混合组成
if(null ==yourPwd || ""==yourPwd){
$('#s').html("<font color=red>请输入密码!</font>");
return false;
}else{
var patrn=/^[a-zA-Z0-9]{6,12}$/;
var flag = false;
if (!patrn.test(yourPwd)){
}else{
var strs = new Array();
strs = yourPwd.split("");
if(isNaN(strs[0])){
for(var i=1;i<strs.length;i++){
if(!isNaN(strs[i])){
flag = true;
break;
}
}
}else{
for(var i=1;i<strs.length;i++){
if(isNaN(strs[i])){
flag = true;
break;
}
}
}
}
if(flag){
}else{
$('#s').html("<font color=red>密码格式不正确,密码为6~12位数字和字母</font>");
return false;
}
9.java工程本地访问没有问题,但是打成war包,发布到was服务器访问不到页面(403错误)
原因:应该是打的war有问题,我本地的工程名和打成的war包名称不一致,比如 我本地工程名称是 a 但是我打的war包名称b.war ,原因可能是这里的不一致导致的。
解决方案:先把我本地的工程名称改成b,注意要把根目录也改成b(tomcat下的发布路径),然后打成b.war 问题解决
更改根目录方法:右击工程-->>properties-->>MyEclipse-->web-->>Content RooT -->>Web Content RooT
10.java工程下的web.xml工程报错
但是不影响项目,但是一个大大的红叉。。。
错误提示为:Referenced file contains errors (http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd. For more information, right click on the message and select "Show Details..."
解决方案:将 http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd 中的java改为JAVA
http://JAVA.sun.com/xml/ns/javaee/web-app_2_4.xsd 问题解决
JS 报错syntax error
在Eclipse下引入外部JS文件,比如Jquery.js,经常会出现如下异常信息:
去除该异常方法:
1. 去掉Eclipse的JS验证
Windws---->Preferences---->JavaScript--->validator
然后选择全部取消使用验证;
11.MyEclipse+tomcat+quartz做调度程序
所需jar : quartz-x.x.x.jar , jta.jar , commons-digester.jar
12.关于cookie的简单创建与使用
cookie的简单创建和存储:
//1.设置cookie到客户端
Cookie c1 = new Cookie("username","hzh");
//设置生命周期为1小时,秒为单位
c1.setMaxAge(3600);
response.addCookie(c1);
cookie的读取:
//2.读取cookie文件
Cookie[] cookies = request.getCookies();
for(Cookie c :cookies ){
System.out.println(c.getName()+"--->"+c.getValue());
}
13.关于session的失效时间setMaxInactiveInterval和session-config的比较
setMaxInactiveInterval和session-config的比较:
14.关于返回顶部的简单JS实现
document.documentElement.scrollTop = document.body.scrollTop =0;
15.解决手机页面滑动时, 整个页面会跟着晃动的问题
/* 监听页面触摸运动
滑动刮刮卡页面时 整个页面都跟着滑动 添加页面监听 ,禁止页面滑动
参数jinzhi 大于0时 页面重新开始晃动
*/
var jinzhi=0;
document.addEventListener("touchmove",function(e){
if(jinzhi==0){
e.preventDefault();
e.stopPropagation();
}
,false);
//页面监听结束 END
16.οncοntextmenu="return false;" 取消鼠标右键
17.canvas 标签 相关方法(刮刮卡)
document.createElement()是在对象中创建一个对象,要与appendChild() 或 insertBefore()方法联合使用。其中,appendChild() 方法在节点的子节点列表末添加新的子节点。insertBefore() 方法在节点的子节点列表任意位置插入新的节点。
2)HTML DOM moveTo()方法
moveTo() 方法可把窗口的左上角移动到一个指定的坐标。
参数 | 描述 |
---|---|
x | 窗口新位置的 x 坐标 |
y | 窗口新位置的 y 坐标 |
3)HTML canvas arc方法
arc() 方法创建弧/曲线(用于创建圆或部分圆)。
提示:如需通过 arc() 来创建圆,请把起始角设置为 0,结束角设置为 2*Math.PI。
提示:请使用 stroke() 或 fill() 方法在画布上绘制实际的弧。
JavaScript 语法:
context.arc(x,y,r,sAngle,eAngle,counterclockwise);
参数值
参数 | 描述 |
---|---|
x | 圆的中心的 x 坐标。 |
y | 圆的中心的 y 坐标。 |
r | 圆的半径。 |
sAngle | 起始角,以弧度计。(弧的圆形的三点钟位置是 0 度)。 |
eAngle | 结束角,以弧度计。 |
counterclockwise | 可选。规定应该逆时针还是顺时针绘图。False = 顺时针,true = 逆时针。 |
4) HTML5 canvas fillRect() 方法
定义和用法
fillRect() 方法绘制“已填色”的矩形。默认的填充颜色是黑色。
提示:请使用 fillStyle 属性来设置用于填充绘图的颜色、渐变或模式。
JavaScript 语法:
context.fillRect(x,y,width,height);
参数值
参数 | 描述 |
---|---|
x | 矩形左上角的 x 坐标 |
y | 矩形左上角的 y 坐标 |
width | 矩形的宽度,以像素计 |
height | 矩形的高度,以像素计 |
三种在规范中列出并获得跨移动设备广泛实现的基本触摸事件:
1. touchstart :手指放在一个DOM元素上。
2. touchmove :手指拖曳一个DOM元素。
3. touchend :手指从一个DOM元素上移开。
6)jQuery 事件 - pageX 属性
定义和用法
pageX() 属性是鼠标指针的位置,相对于文档的左边缘。
语法
event.pageX
参数 | 描述 |
---|---|
event | 必需。规定要使用的事件。这个 event 参数来自事件绑定函数。 |
18.javascript通过navigator.userAgent识别各种浏览器
function validBrowser(){
var u_agent = navigator.userAgent;
var browser_name='Failed to identify the browser';
if(u_agent.indexOf('Firefox')>-1){
browser_name='Firefox';
}else if(u_agent.indexOf('Chrome')>-1){
browser_name='Chrome';
}else if(u_agent.indexOf('Trident')>-1&&u_agent.indexOf('rv:11')>-1){
browser_name='IE11';
}else if(u_agent.indexOf('MSIE')>-1&&u_agent.indexOf('Trident')>-1){
browser_name='IE(8-10)';
}else if(u_agent.indexOf('MSIE')>-1){
browser_name='IE(6-7)';
}else if(u_agent.indexOf('Opera')>-1){
browser_name='Opera';
}else{
browser_name+=',info:'+u_agent;
}
document.write('browser_name:'+browser_name+'<br>');
document.write('u_agent:'+u_agent+'<br>');
}