6.jQuery Web中的应用

一.验证用户名

先搭建web环境

jquery-1.11.3.js

image

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <!--过滤器-->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


    <!--配置SpringMVC的前端控制器-->
    <servlet>
        <servlet-name>mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>mvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    
    
</web-app>

mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
		   http://www.springframework.org/schema/context
		   http://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/mvc
           http://www.springframework.org/schema/mvc/spring-mvc.xsd">
           <!-- IoC注解解析器-->
    <context:component-scan base-package="cn.dusk"/>
    <!-- DI注解驱动器 -->
	<context:annotation-config/>
    <!-- 注解驱动器 -->
	<mvc:annotation-driven/>
	<!-- 视图解析器 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"/>
		<property name="suffix" value=".jsp"/>
	</bean>
</beans>

Controller类checkqueryname

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
		   http://www.springframework.org/schema/context
		   http://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/mvc
           http://www.springframework.org/schema/mvc/spring-mvc.xsd">
           <!-- IoC注解解析器-->
    <context:component-scan base-package="cn.dusk"/>
    <!-- DI注解驱动器 -->
	<context:annotation-config/>
    <!-- 注解驱动器 -->
	<mvc:annotation-driven/>
	<!-- 视图解析器 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"/>
		<property name="suffix" value=".jsp"/>
	</bean>
</beans>

JsonResult类

//json返回值信息
@Setter
@Getter
public class JsonResult {
	//返回状态
	private boolean success=true;
	//返回数据
	private String msg;
	//如果状态为false才返回信息
	public JsonResult(String msg) {
		this.success=false;
		this.msg=msg;
	}
	public JsonResult(boolean success,String msg) {
		this.success=success;
		this.msg=msg;
	}
	public JsonResult() {
	}
}

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<!-- 引入jQuery -->
<script type="text/javascript" src="../../js/jquery-1.11.3.js"></script>
<script type="text/javascript" src="index.js"></script>
</head>
<body>
	账号:<input type="text" id="nameId">
	<span id="sp"></span>
</body>
</html>

image

index.js

//内部操作
$(function(){
	$("#nameId").blur(function(){
		//this: 表示当前这个输入框
		var uname=this.value;
		//发送ajax请求
		//$.get(url,params,fn,返回数据类型);
		//回调函数表示请求回来的数据
		$.get("/jquery/checkjqueryName.do",{username:uname},function(data){
			if(data.success){
				$("#sp").html(data.msg).css("color","green");
			}else{
				$("#sp").html(data.msg).css("color","red");
			}
		},"json");
		
	})
});	


二.登录验证

类LoginJQueryController

@Controller
@RequestMapping("login")
public class LoginJQueryController {
	@RequestMapping("jquerylogin")
	@ResponseBody
	public JsonResult login(String username,String password,HttpServletResponse response) throws IOException {
		if ("admain".equals(username) && "12".equals(password)) {
			System.out.println("登录成功:"+username+password);
			return new JsonResult();
		}else {
			return new JsonResult(false,"账号密码不正确");
		}
	}
	@RequestMapping("main")
	public String main() {
		return "redirect:/jQuery/12_login/main.html";
	}
}

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<!-- 引入jQuery -->
<script type="text/javascript" src="../../js/jquery-1.11.3.js"></script>
<script type="text/javascript" src="index.js"></script>
</head>
<body>
	账号:<input type="text" id="nameId" name="username"><span id="sp"></span><br>
	密码:<input type="text" id="pwdId" name="password"><br>
	<input type="button" id="btn" value="登录"><br>
	
</body>
</html>

main.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
欢迎ooxx
</body>
</html>

image

index.js

//内部操作
$(function(){
	//登录
	$("#btn").click(function(){
		var uname=$("#nameId").val();
		var upwd=$("#pwdId").val();
		$.post("/login/jquerylogin.do",{username:uname,password:upwd},function(data){
			if(data.success){
				window.location.href="/login/main.do";
			}else{
				$("#sp").html(data.msg).css("color","red");
			}
		},"json");
	})
});	

三.rbac的应用

准备一份rbac项目
commonAll.js替换

//禁用jQuery对数组参数做的序列化操作,对数组参数名带上[]
jQuery.ajaxSettings.traditional = true;
/** table鼠标悬停换色* */
$(function() {
	// 如果鼠标移到行上时,执行函数
	$(".table tr").mouseover(function() {
		$(this).css({
			background : "#CDDAEB"
		});
		$(this).children('td').each(function(index, ele) {
			$(ele).css({
				color : "#1D1E21"
			});
		});
	}).mouseout(function() {
		$(this).css({
			background : "#FFF"
		});
		$(this).children('td').each(function(index, ele) {
			$(ele).css({
				color : "#909090"
			});
		});
	});
});

/** 翻页操作 */
/*$(function() {
	// 翻页操作
	$(".btn_page").click(
			function() {
				// 获取data-page属性的值
				var pageNo = $(this).data("page")
						|| $(":input[name='currentPage']").val();
				$(":input[name='currentPage']").val(pageNo);
				$("#searchForm").submit();
			});
	// 设置每页显示多少条数据:改变ageSize
	$(":input[name='pageSize']").change(function() {
		$(":input[name='currentPage']").val(1);
		$("#searchForm").submit();
	});
});*/
/** 点击,跳转到指定URL */
/*$(function() {
	$(".btn_redirect").click(function() {
		window.location.href = $(this).data("url");
	});
});*/
/** 批量删除操作 */
$(function() {
	// 全选/全不选:复选框
	$("#all").click(function() {
		$(":input[name=IDCheck]").prop("checked", $(this).prop("checked"));
	});
});
/** 确定删除的对话框 */
/*$(function() {
	$(".btn_delete").click(function() {
		var deleteUrl = $(this).data("url");
		$.dialog({
			title : "温馨提示",
			content : "你确定要删除吗?",
			icon : "face-smile",
			cancel : true,
			ok : function() {
				var dialog =  $.dialog({icon : "face-smile"});//初始化对话框
				$.get(deleteUrl,{}, function(data) {
					dialog.title("温馨提示").content("删除成功!").button({
						name:"确定",
						callback:function(){
							window.location.reload();
						}
					});
				});
			}
		});
	});
});
// 对话框
function showDialog(content, icon, cancel, ok) {
	$.dialog({
		title : "温馨提示",
		content : content || "",
		icon : icon || "face-smile",
		cancel : cancel || true,
		ok : ok || true
	});
}*/

input.jsp替换

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>信息管理系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="/style/basic_layout.css" rel="stylesheet" type="text/css">
<link href="/style/common_style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="/js/jquery/jquery.js"></script>
<script type="text/javascript" src="/js/commonAll.js"></script>
</head>
<body>
<form action="/department/saveOrUpdate.do" method="post" id="editForm">
	<input type="hidden" name="id" value="${entity.id}"/>
	<div id="container">
		<div id="nav_links">
			<span style="color: #1A5CC6;">部门编辑</span>
			<div id="page_close">
				<a>
					<img src="/images/common/page_close.png" width="20" height="20" style="vertical-align: text-top;"/>
				</a>
			</div>
		</div>
		<div class="ui_content">
			<table cellspacing="0" cellpadding="0" width="100%" align="left" border="0">
				<tr>
					<td class="ui_text_rt" width="140">部门名称</td>
					<td class="ui_text_lt">
						<input type="text" name="name" value="${entity.name}" class="ui_input_txt02"/>
					</td>
				</tr>
				<tr>
					<td class="ui_text_rt" width="140">部门代码</td>
					<td class="ui_text_lt">
						<input type="text" name="sn" value="${entity.sn}" class="ui_input_txt02"/>
					</td>
				</tr>
				<tr>
					<td>&nbsp;</td>
					<td class="ui_text_lt">
						&nbsp;<input type="submit" value="确定保存" class="ui_input_btn01"/>
						&nbsp;<input id="cancelbutton" type="button" value="重置" class="ui_input_btn01"/>
					</td>
				</tr>
			</table>
		</div>
	</div>
</form>
</body>
</html>

list.jsp替换

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="/style/basic_layout.css" rel="stylesheet" type="text/css">
<link href="/style/common_style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="/js/jquery/jquery.js"></script>
<script type="text/javascript" src="/js/commonAll.js"></script>
<title>PSS-部门管理</title>
<style>
	.alt td{ background:black !important;}
</style>
</head>
<body>
	<form id="searchForm" action="/department/query.do" method="post">
		<div id="container">
			<div class="ui_content">
				<div class="ui_text_indent">
					<div id="box_border">
						<div id="box_top">搜索</div>
						<div id="box_bottom">
							<input type="button" value="新增" class="ui_input_btn01 " />
						</div>
					</div>
				</div>
			</div>
			<div class="ui_content">
				<div class="ui_tb">
					<table class="table" cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
						<tr>
							<th width="30"><input type="checkbox" id="all" /></th>
							<th>编号</th>
							<th>名称</th>
							<th>编码</th>
							<th></th>
						</tr>
						<tbody>
							<c:forEach var="d" items="${result.data}">
								<tr>
									<td><input type="checkbox" name="IDCheck" class="acb" /></td>
									<td>${d.id}</td>
									<td>${d.name}</td>
									<td>${d.sn}</td>
									<td>
										<a href="#">编辑</a>
										<a href="#">删除</a>
									</td>
								</tr>
							</c:forEach>
						</tbody>
					</table>
				</div>
				<!-- 分页操作 -->
				<div class="ui_tb_h30">
				<div class="ui_flt" style="height: 30px; line-height: 30px;">
					共有
					<span class="ui_txt_bold04">xx</span>
					条记录,当前第
					<span class="ui_txt_bold04">1/22</span>
					页
				</div>
				<div class="ui_frt">
					<input type="button" value="首页" class="ui_input_btn01 " />
					<input type="button" value="上一页" class="ui_input_btn01 "/>
					<input type="button" value="下一页" class="ui_input_btn01 " />
					<input type="button" value="尾页" class="ui_input_btn01 " />
					
					<select  name="pageSize" class="ui_select02">
						<option value="3">3</option>
						<option value="5">5</option>
						<option value="10">10</option>
					</select>
					转到第<input type="text" name="currentPage" value="" class="ui_input_txt01" style="width:50px;"/>
						 <input type="button" class="ui_input_btn01 " value="跳转"/>
				</div>
			</div>
			</div>
		</div>
	</form>
</body>
</html>
    

以上是把之前的js注释现在再写一遍

新增/编辑

给新增添加一个样式btn_redirect,自定义属性data-url

<div id="box_bottom">
	<input type="button" value="新增" class="ui_input_btn01 btn_redirect" data-url="/department/input.do"/>
</div>
<a href="javascript:;" class="btn_redirect" data-url="/department/input.do?id=${d.id}">编辑</a>

删除
给删除元素添加自定义样式: btn_delete, 同时添加data-url自定义的属性

<a href="javascript:;" class="btn_delete" data-url="/department/delete.do?id=${d.id}">删除</a>

给首页/上一页/下一页/尾页/ 跳转 添加自定义样式 btn_page, 除了跳转都添加了data-page属性

<input type="button" value="首页" class="ui_input_btn01 btn_page" data-page="1"/>
<input type="button" value="上一页" class="ui_input_btn01 btn_page" data-page="${result.prevPage}"/>
<input type="button" value="下一页" class="ui_input_btn01 btn_page" data-page="${result.nextPage}"/>
<input type="button" value="尾页" class="ui_input_btn01 btn_page" data-page="${result.totalPage}"/>

最终js

//xinzeng
	$(function(){
		//$(".btn_redirect");
		//添加或编辑
		$(".btn_redirect").click(function () {
			//被点击的元素
			window.location.href=$(this).data("url");
		});
		//删除
		$(".btn_delete").click(function(){
			//询问用户是否确定要删除
			var ret=confirm("你确定要删除吗?");
			if(ret){
				//发送ajax删除
				$.get($(this).data("url"),function(data){
					window.location.reload();
				})
			}
		});

		//参数1,数组或对象,参数2:操作函数
		$.each($(":input[name='pageSize'] option"),function(index,item){
			//当用于回的pageSize等于option中的value值时,才选择
			if(${result.pageSize} == $(item).val()){
				$(item).prop("selected",true);
			}
		});
		//下拉框发生改变的时候,执行刷新操作,重新加载一次数据
		$(":input[name='pageSize']").change(function(){
			$(":input[name='currentPage']").val(1);
			$("#searchForm").submit();
		})
		//分页
		$(".btn_page").click(function(){
			//如果点击跳转button,出现400因为没有制定data-page属性
			//而这个跳转button对应的currentPage应该是currentPage值,有用户输入
			var pageNo =$(this).data('page') || $(":input[name='currentPage']").val() || 1;

			//获取当前页,然后修改成制定的跳转的页码数
			$(":input[name='currentPage']").val(pageNo);
			//找到form表单,然后直接提交表单
			$("#searchForm").submit();
		})

	});

	</script>

最总的list.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="/style/basic_layout.css" rel="stylesheet" type="text/css">
<link href="/style/common_style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="/js/jquery/jquery.js"></script>
<script type="text/javascript" src="/js/commonAll.js"></script>

	<script type="text/javascript">
	//xinzeng
	$(function(){
		//$(".btn_redirect");
		//添加或编辑
		$(".btn_redirect").click(function () {
			//被点击的元素
			window.location.href=$(this).data("url");
		});
		//删除
		$(".btn_delete").click(function(){
			//询问用户是否确定要删除
			var ret=confirm("你确定要删除吗?");
			if(ret){
				//发送ajax删除
				$.get($(this).data("url"),function(data){
					window.location.reload();
				})
			}
		});

		//参数1,数组或对象,参数2:操作函数
		$.each($(":input[name='pageSize'] option"),function(index,item){
			//当用于回的pageSize等于option中的value值时,才选择
			if(${result.pageSize} == $(item).val()){
				$(item).prop("selected",true);
			}
		});
		//下拉框发生改变的时候,执行刷新操作,重新加载一次数据
		$(":input[name='pageSize']").change(function(){
			$(":input[name='currentPage']").val(1);
			$("#searchForm").submit();
		})
		//分页
		$(".btn_page").click(function(){
			//如果点击跳转button,出现400因为没有制定data-page属性
			//而这个跳转button对应的currentPage应该是currentPage值,有用户输入
			var pageNo =$(this).data('page') || $(":input[name='currentPage']").val() || 1;

			//获取当前页,然后修改成制定的跳转的页码数
			$(":input[name='currentPage']").val(pageNo);
			//找到form表单,然后直接提交表单
			$("#searchForm").submit();
		})

	});




	</script>
<title>PSS-部门管理</title>
<style>
	.alt td{ background:black !important;}
</style>
</head>
<body>
	<form id="searchForm" action="/department/list.do" method="post">
		<div id="container">
			<div class="ui_content">
				<div class="ui_text_indent">
					<div id="box_border">
						<div id="box_top">搜索</div>
						<div id="box_bottom">
							<input type="button" value="新增" class="ui_input_btn01 btn_redirect" data-url="/department/input.do"/>
						</div>
					</div>
				</div>
			</div>
			<div class="ui_content">
				<div class="ui_tb">
					<table class="table" cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
						<tr>
							<th width="30"><input type="checkbox" id="all" /></th>
							<th>编号</th>
							<th>名称</th>
							<th>编码</th>
							<th></th>
						</tr>
						<tbody>
							<c:forEach var="d" items="${result.data}">
								<tr>
									<td><input type="checkbox" name="IDCheck" class="acb" /></td>
									<td>${d.id}</td>
									<td>${d.name}</td>
									<td>${d.sn}</td>
									<td>
										<a href="javascript:;" class="btn_redirect" data-url="/department/input.do?id=${d.id}">编辑</a>
										<a href="javascript:;" class="btn_delete" data-url="/department/delete.do?id=${d.id}">删除</a>
									</td>
								</tr>
							</c:forEach>
						</tbody>
					</table>
				</div>
				<!-- 分页操作 -->
				<div class="ui_tb_h30">
				<div class="ui_flt" style="height: 30px; line-height: 30px;">
					共有
					<span class="ui_txt_bold04">${result.totalCount}</span>
					条记录,当前第
					<span class="ui_txt_bold04">${result.currentPage}/${result.totalPage}</span>
					页
				</div>
				<div class="ui_frt">
					<input type="button" value="首页" class="ui_input_btn01 btn_page" data-page="1"/>
					<input type="button" value="上一页" class="ui_input_btn01 btn_page" data-page="${result.prevPage}"/>
					<input type="button" value="下一页" class="ui_input_btn01 btn_page" data-page="${result.nextPage}"/>
					<input type="button" value="尾页" class="ui_input_btn01 btn_page" data-page="${result.totalPage}"/>

					<select  name="pageSize" class="ui_select02">
						<option value="3">3</option>
						<option value="5">5</option>
						<option value="10">10</option>
					</select>
					转到第<input type="text" name="currentPage" value="${result.currentPage}" class="ui_input_txt01" style="width:50px;"/>
						 <input type="button" class="ui_input_btn01 btn_page" value="跳转"/>
				</div>
			</div>
			</div>
		</div>
	</form>
</body>
</html>
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值