众筹项目学习

♀尐吖头ヾ 提交于 2020-03-03 01:46:29

众筹项目学习

一、登录模块

在这里插入图片描述
welcome页面,<jsp:forward page="/index"></jsp:forward>去找控制器

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>
</head>
<body>
	<jsp:forward page="/index"></jsp:forward>
</body>
</html>

登录controller

@RequestMapping("dologin")
	@ResponseBody
	public Map<String,String> doLogin(TAdmin tadmin,HttpSession session,Model model) {
		System.out.println(tadmin.getLoginacct());
		Map<String, String> ret = new HashMap<String,String>();
		if(tadmin == null){
			ret.put("type", "error");
			ret.put("msg","用户不能为空");
			return ret;
		}
		if(StringUtils.isEmpty(tadmin.getLoginacct())){
			ret.put("type", "error");
			ret.put("msg","账号不能为空");
			return ret;
		}
		if(StringUtils.isEmpty(tadmin.getUserpswd())){
			ret.put("type", "error");
			ret.put("msg","密码不能为空");
			return ret;
		}
		
		TAdmin findByUsername = tAdminServiceImpl.findByUsername(tadmin.getLoginacct());
		if(findByUsername == null){
			ret.put("type", "error");
			ret.put("msg", "账户不存在");
			return ret;
		}
		if(!tadmin.getUserpswd().equals(findByUsername.getUserpswd())){
			ret.put("type", "error");
			ret.put("msg", "密码错误");
			return ret;
		}
		session.setAttribute("admin", findByUsername);		
		//model.addAttribute("admin", findByUsername);
		ret.put("type", "success");
		ret.put("msg","登录成功");
		return ret;
	}

serviceImpl实现类代码

public TAdmin findByUsername(String loginacct) {
		TAdminExample example = new TAdminExample();
		example.createCriteria().andLoginacctEqualTo(loginacct);
		List<TAdmin> list = adminMapper.selectByExample(example);
		if(list == null || list.size() == 0) {
			return null;
		}
		return list.get(0);
		
	}

前端页面login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh_CN">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="keys" content="">
    <meta name="author" content="">
	<link rel="stylesheet" href="${PATH}/static/bootstrap/css/bootstrap.min.css">
	<link rel="stylesheet" href="${PATH}/static/css/font-awesome.min.css">
	<link rel="stylesheet" href="${PATH}/static/css/login.css">
	<style>

	</style>
  </head>
  <body>
    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <div><a class="navbar-brand" href="index.html" style="font-size:32px;">尚筹网-创意产品众筹平台</a></div>
        </div>
      </div>
    </nav>

    <div class="container">

      <form id="loginForm" class="form-signin" role="form" action="dologin" method="post">
      
        <h2 class="form-signin-heading"><i class="glyphicon glyphicon-log-in"></i> 用户登录</h2>
		  <div class="form-group has-success has-feedback">
			<input type="text" class="form-control" id="loginacct" name="loginacct"  placeholder="请输入登录账号" autofocus>
			<span class="help-block"></span>
			<!-- <span class="glyphicon glyphicon-user form-control-feedback"></span> -->
		  </div> 
		  <div class="form-group has-success has-feedback">
			<input type="password" class="form-control" id="userpswd" name="userpswd" placeholder="请输入登录密码" style="margin-top:10px;">
			<span class="glyphicon glyphicon-lock form-control-feedback"></span>
		  </div>
		  <div class="form-group has-success has-feedback">
		  </div>
        <div class="checkbox">
          <label>
            <input type="checkbox" value="remember-me"> 记住我
          </label>
          <br>
          <label>
            忘记密码
          </label>
          <label style="float:right">
            <a href="reg.html">我要注册</a>
          </label>
        </div>
        <a class="btn btn-lg btn-success btn-block" onclick="dologin()" > 登录</a>
        
      </form>
    </div>
    <script src="${PATH}/static/jquery/jquery-2.1.1.min.js"></script>
    <script src="${PATH}/static/bootstrap/js/bootstrap.min.js"></script>
    <script>
    
    //登录
    function dologin() {
        var loginacct = $("#loginacct").val();
        var userpswd = $("#userpswd").val();
        if(loginacct == '' || loginacct == 'undefined'){
			alert("请填写账号!!");
			return;
		}
		if(userpswd == '' || userpswd == 'undefined'){
			alert("请填写密码!!");
			return;
		}
		$.ajax({
			url:"dologin",
			data:{loginacct:loginacct,userpswd:userpswd},
			type:'post',
			dataType:'json',
			success:function(result){
				if(result.type == 'success'){
					window.location = 'main';
				}else{					
					alert(result.msg);
				}
			}
		})
    }
    
  //校验表单数据
	function validate_login_form(){
		//1.拿到要校验的数据
		var loginacct = $("#loginacct").val();
		var regloginacct = /(^[a-z0-9_-]{6,10}$)/;
		if(!regloginacct.test(loginacct)){
			//alert("书名可以是2-5位中文")
			show_validate_msg("#loginacct","error","账户输入不正确,请输入是6-10位数字或英文组合");
			return false;
		}else{
			show_validate_msg("#loginacct","success","");
		}
		return true;
	}
  
	//显示校验结果的提示信息
	function show_validate_msg(ele,status,msg){
		//清除当前元素的校验状态
		$(ele).parent().removeClass("has-success has-error");
		$(ele).next("span").text("");
		if("success"==status){
			$(ele).parent().addClass("has-success");
			$(ele).next("span").text(msg);
		}else if("error" == status){
			$(ele).parent().addClass("has-error");
			$(ele).next("span").text(msg);
		}
	}
    </script>
  </body>
</html>

静态包含和动态包含,抽取公共代码块

	<!-- 静态包含:最终生成一个class -->
	<%@ include file="/WEB-INF/jsp/common/css.jsp" %>
	 <!-- 动态包含:最终生成两个class -->
	<jsp:include page="/WEB-INF/jsp/common/css.jsp"></jsp:include>

二、 左侧菜单

在这里插入图片描述
Menu类

package com.atguigu.atcrowdfunding.bean;

import java.util.ArrayList;
import java.util.List;

public class TMenu {
    private Integer id;

    private Integer pid;

    private String name;

    private String icon;

    private String url;
    
    private List<TMenu> children = new ArrayList<TMenu>();

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getPid() {
        return pid;
    }

    public void setPid(Integer pid) {
        this.pid = pid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon == null ? null : icon.trim();
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url == null ? null : url.trim();
    }

	public List<TMenu> getChildren() {
		return children;
	}

	public void setChildren(List<TMenu> children) {
		this.children = children;
	}
    
}

controller

@RequestMapping("/main")
	public String main(HttpSession session) {
		List<TMenu> menu = new ArrayList<TMenu>();
		
		menu = tMenuServiceImpl.listMenuAll();
		session.setAttribute("menuList", menu);
			
		return "main";
	}

serviceImpl

@Override
	public List<TMenu> listMenuAll() {
		System.out.println("555");
		List<TMenu> menuList = new ArrayList<TMenu>(); // 只存放父菜单,但是将children属性赋值
		Map<Integer, TMenu> cache = new HashMap<Integer, TMenu>();

		List<TMenu> allList = menuMapper.selectByExample(null); // 所有的菜单

		System.out.println(allList.size()); // 查询从所有菜单中查询父菜单
		for (TMenu tMenu : allList) {
			if (tMenu.getPid() == 0) {
				menuList.add(tMenu);
				cache.put(tMenu.getId(), tMenu);
			}
		}

		for (TMenu tMenu : allList) {
			if (tMenu.getPid() != 0) {
				Integer pid = tMenu.getPid();
				TMenu parent = cache.get(pid);
				parent.getChildren().add(tMenu); // 根据子菜单pid查找父菜单id,然后根据父菜单children属性进行父子关系组合。
			}
		}

		return menuList;
	}

jsp公共页

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<div class="col-sm-3 col-md-2 sidebar">
		<div class="tree">
			<ul style="padding-left:0px;" class="list-group">
				<c:forEach items="${menuList}" var="parent">
					<c:if test="${empty parent.children}">
						<li class="list-group-item tree-closed" >
							<a href="${PATH}/${parent.url}"><i class="glyphicon glyphicon-dashboard"></i> ${parent.name}</a> 
						</li>
					</c:if>
					
					<c:if test="${not empty parent.children}">
						<li class="list-group-item tree-closed">
							<span><i class="${parent.icon}"></i> ${parent.name} <span class="badge" style="float:right">3</span></span> 
							<c:forEach items="${parent.children}" var="children">
								<ul style="margin-top:10px;display:none;">
									<li style="height:30px;">
										<a href="${PATH}/${children.url}"><i class="${children.icon}"></i>${children.name}</a> 
									</li>
								</ul>
							</c:forEach>
						</li>
					</c:if>
				</c:forEach>
			</ul>
		</div>
</div>

页面数据分页
controller

@RequestMapping("/admin/index")
	public String index(@RequestParam(value="pageNum",required=false,defaultValue="1") Integer pageNum,
						@RequestParam(value="pageSize",required=false,defaultValue="7") Integer pageSize,
						Model model) {
		
		//List<TAdmin> allAdmin = tAdminServiceImpl.getAllAdmin();
		
		PageHelper.startPage(pageNum, pageSize);  //线程绑定
		
		Map<String,Object> paramMap = new HashMap<String,Object>();
		
		PageInfo<TAdmin> page = tAdminServiceImpl.getAllAdmin(paramMap);
		
		model.addAttribute("page", page);
		
		return "admin/index";
	}

serviceImpl

@Override
	public PageInfo<TAdmin> getAllAdmin(Map<String,Object> paramMap) {
		
		List<TAdmin> list = adminMapper.selectByExample(null);
		PageInfo<TAdmin> page = new PageInfo<TAdmin>(list);
		return page;
	}

jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html lang="zh_CN">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

	 <!-- 静态包含:最终生成一个class -->
	<%@ include file="/WEB-INF/jsp/common/css.jsp" %>
	<style>
	.tree li {
        list-style-type: none;
		cursor:pointer;
	}
	table tbody tr:nth-child(odd){background:#F4F4F4;}
	table tbody td:nth-child(even){color:#C00;}
	</style>
  </head>

  <body>

    <!-- 动态包含:最终生成两个class -->
    <jsp:include page="/WEB-INF/jsp/common/top.jsp"></jsp:include>

    <div class="container-fluid">
      <div class="row">
        
        <!-- 动态包含:最终生成两个class -->
    	<jsp:include page="/WEB-INF/jsp/common/sidebar.jsp"></jsp:include>
    	
        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
			<div class="panel panel-default">
			  <div class="panel-heading">
				<h3 class="panel-title"><i class="glyphicon glyphicon-th"></i> 数据列表</h3>
			  </div>
			  <div class="panel-body">
<form class="form-inline" role="form" style="float:left;">
  <div class="form-group has-feedback">
    <div class="input-group">
      <div class="input-group-addon">查询条件</div>
      <input class="form-control has-success" type="text" placeholder="请输入查询条件">
    </div>
  </div>
  <button type="button" class="btn btn-warning"><i class="glyphicon glyphicon-search"></i> 查询</button>
</form>
<button type="button" class="btn btn-danger" style="float:right;margin-left:10px;"><i class=" glyphicon glyphicon-remove"></i> 删除</button>
<button type="button" class="btn btn-primary" style="float:right;" onclick="window.location.href='add.html'"><i class="glyphicon glyphicon-plus"></i> 新增</button>
<br>
 <hr style="clear:both;">
          <div class="table-responsive">
            <table class="table  table-bordered">
              <thead>
                <tr >
                  <th width="30">#</th>
				  <th width="30"><input type="checkbox"></th>
                  <th>账号</th>
                  <th>名称</th>
                  <th>邮箱地址</th>
                  <th width="100">操作</th>
                </tr>
              </thead>
              <tbody>
                <c:forEach items="${page.list}" var="admin" varStatus="status">
	                <tr>
	                  <td>${status.count}</td>
					  <td><input type="checkbox"></td>
	                  <td>${admin.loginacct}</td>
	                  <td>${admin.username}</td>
	                  <td>${admin.email}</td>
	                  <td>
					      <button type="button" class="btn btn-success btn-xs"><i class=" glyphicon glyphicon-check"></i></button>
					      <button type="button" class="btn btn-primary btn-xs"><i class=" glyphicon glyphicon-pencil"></i></button>
						  <button type="button" class="btn btn-danger btn-xs"><i class=" glyphicon glyphicon-remove"></i></button>
					  </td>
	                </tr>
                </c:forEach>
                                                                        
              </tbody>
			   <tfoot>
			     <tr >
				     <td colspan="6" align="center">
						<ul class="pagination">
						
							<c:if test="${page.isFirstPage }">
								<li class="disabled"><a href="#">上一页</a></li>
							</c:if>
							
							<c:if test="${!page.isFirstPage }">
								<li><a href="${PATH}/admin/index?pageNum=${page.pageNum-1}">上一页</a></li>
							</c:if>
							
							
							<c:forEach items="${page.navigatepageNums}" var="num">
								<c:if test="${num == page.pageNum }">
									<li class="active"><a href="${PATH}/admin/index?pageNum=${num}">${num} <span class="sr-only">(current)</span></a></li>
								</c:if>
								<c:if test="${num != page.pageNum }">
									<li><a href="${PATH}/admin/index?pageNum=${num}">${num}</a></li>
								</c:if>
							</c:forEach>
							
							
							<c:if test="${page.isLastPage }">
								<li class="disabled"><a href="#">下一页</a></li>
							</c:if>
							
							<c:if test="${!page.isLastPage }">
								<li><a href="${PATH}/admin/index?pageNum=${page.pageNum+1}">下一页</a></li>
							</c:if>
						
						 </ul>
					 </td>
				 </tr>

			  </tfoot>
            </table>
          </div>
			  </div>
			</div>
        </div>
      </div>
    </div>

    <%@ include file="/WEB-INF/jsp/common/js.jsp" %>
        <script type="text/javascript">
            $(function () {
			    $(".list-group-item").click(function(){
				    if ( $(this).find("ul") ) {
						$(this).toggleClass("tree-closed");
						if ( $(this).hasClass("tree-closed") ) {
							$("ul", this).hide("fast");
						} else {
							$("ul", this).show("fast");
						}
					}
				});
            });
            $("tbody .btn-success").click(function(){
                window.location.href = "assignRole.html";
            });
            $("tbody .btn-primary").click(function(){
                window.location.href = "edit.html";
            });
        </script>
  </body>
</html>

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!