2020.2.20 完成宿舍模块的实现,并新加表格显示内容过多省略号代替

main
ppdxzz 5 years ago
parent ce94ca27b4
commit 32642d49d9

@ -8,15 +8,11 @@
<component name="ChangeListManager">
<list default="true" id="8033210d-c341-4f39-a328-95fe94016f00" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/ppdxzz/dao/StudentDao.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/ppdxzz/dao/StudentDao.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/ppdxzz/domain/Student.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/ppdxzz/domain/Student.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/ppdxzz/service/impl/StudentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/ppdxzz/service/impl/StudentServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/jsp/student-add.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/jsp/student-add.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/jsp/student-edit.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/jsp/student-edit.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/jsp/student-list.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/jsp/student-list.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/hellossm/WEB-INF/jsp/student-add.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/target/hellossm/WEB-INF/jsp/student-add.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/hellossm/WEB-INF/jsp/student-list.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/target/hellossm/WEB-INF/jsp/student-list.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/hellossm/WEB-INF/jsp/visitor-success.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/target/hellossm/WEB-INF/jsp/visitor-success.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/artifacts/hellossm_war2/hellossm_war.war" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/ppdxzz/service/StudentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/ppdxzz/service/StudentService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/jsp/main.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/jsp/main.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/hellossm/WEB-INF/jsp/main.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/target/hellossm/WEB-INF/jsp/main.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/宿管系统SSM框架日进度.md" beforeDir="false" afterPath="$PROJECT_DIR$/宿管系统SSM框架日进度.md" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -230,6 +226,11 @@
<item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
<item name="Tomcat Server" type="7427dc5b:ServiceModel$ServiceGroupNode" />
</path>
<path>
<item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
<item name="Tomcat Server" type="7427dc5b:ServiceModel$ServiceGroupNode" />
<item name="Running" type="7427dc5b:ServiceModel$ServiceGroupNode" />
</path>
</expand>
<select />
</treeState>
@ -271,7 +272,10 @@
<workItem from="1582001026668" duration="32026000" />
<workItem from="1582077952665" duration="5952000" />
<workItem from="1582093960673" duration="5496000" />
<workItem from="1582099866858" duration="5125000" />
<workItem from="1582099866858" duration="20535000" />
<workItem from="1582160800313" duration="3118000" />
<workItem from="1582163957936" duration="3456000" />
<workItem from="1582178854250" duration="13561000" />
</task>
<servers />
</component>
@ -287,82 +291,82 @@
<screen x="0" y="0" width="1366" height="728" />
</state>
<state x="275" y="26" key="#Template_Data_Languages/0.0.1366.728@0.0.1366.728" timestamp="1581948864401" />
<state x="137" y="23" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1581485477637">
<state x="137" y="23" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1582163405246">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state x="137" y="23" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1366.728@0.0.1366.728" timestamp="1581485477637" />
<state x="488" y="84" key="#com.intellij.ide.util.MemberChooser" timestamp="1582102994586">
<state x="137" y="23" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1366.728@0.0.1366.728" timestamp="1582163405246" />
<state x="488" y="84" key="#com.intellij.ide.util.MemberChooser" timestamp="1582120640500">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state x="488" y="84" key="#com.intellij.ide.util.MemberChooser/0.0.1366.728@0.0.1366.728" timestamp="1582102994586" />
<state x="488" y="84" key="#com.intellij.ide.util.MemberChooser/0.0.1366.728@0.0.1366.728" timestamp="1582120640500" />
<state x="435" y="110" key="FileChooserDialogImpl" timestamp="1582098741224">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state x="435" y="110" key="FileChooserDialogImpl/0.0.1366.728@0.0.1366.728" timestamp="1582098741224" />
<state width="1325" height="246" key="GridCell.Tab.0.bottom" timestamp="1582099848753">
<state width="1024" height="144" key="GridCell.Tab.0.bottom" timestamp="1582191789740">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1325" height="246" key="GridCell.Tab.0.bottom/0.0.1366.728@0.0.1366.728" timestamp="1582099848753" />
<state width="1325" height="246" key="GridCell.Tab.0.center" timestamp="1582099848753">
<state width="1024" height="144" key="GridCell.Tab.0.bottom/0.0.1366.728@0.0.1366.728" timestamp="1582191789740" />
<state width="1024" height="144" key="GridCell.Tab.0.center" timestamp="1582191789740">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1325" height="246" key="GridCell.Tab.0.center/0.0.1366.728@0.0.1366.728" timestamp="1582099848753" />
<state width="1325" height="246" key="GridCell.Tab.0.left" timestamp="1582099848753">
<state width="1024" height="144" key="GridCell.Tab.0.center/0.0.1366.728@0.0.1366.728" timestamp="1582191789740" />
<state width="1024" height="144" key="GridCell.Tab.0.left" timestamp="1582191789739">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1325" height="246" key="GridCell.Tab.0.left/0.0.1366.728@0.0.1366.728" timestamp="1582099848753" />
<state width="1325" height="246" key="GridCell.Tab.0.right" timestamp="1582099848753">
<state width="1024" height="144" key="GridCell.Tab.0.left/0.0.1366.728@0.0.1366.728" timestamp="1582191789739" />
<state width="1024" height="144" key="GridCell.Tab.0.right" timestamp="1582191789740">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1325" height="246" key="GridCell.Tab.0.right/0.0.1366.728@0.0.1366.728" timestamp="1582099848753" />
<state width="1024" height="111" key="GridCell.Tab.1.bottom" timestamp="1582099848749">
<state width="1024" height="144" key="GridCell.Tab.0.right/0.0.1366.728@0.0.1366.728" timestamp="1582191789740" />
<state width="1024" height="144" key="GridCell.Tab.1.bottom" timestamp="1582191789663">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="111" key="GridCell.Tab.1.bottom/0.0.1366.728@0.0.1366.728" timestamp="1582099848749" />
<state width="1024" height="111" key="GridCell.Tab.1.center" timestamp="1582099848749">
<state width="1024" height="144" key="GridCell.Tab.1.bottom/0.0.1366.728@0.0.1366.728" timestamp="1582191789663" />
<state width="1024" height="144" key="GridCell.Tab.1.center" timestamp="1582191789663">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="111" key="GridCell.Tab.1.center/0.0.1366.728@0.0.1366.728" timestamp="1582099848749" />
<state width="1024" height="111" key="GridCell.Tab.1.left" timestamp="1582099848749">
<state width="1024" height="144" key="GridCell.Tab.1.center/0.0.1366.728@0.0.1366.728" timestamp="1582191789663" />
<state width="1024" height="144" key="GridCell.Tab.1.left" timestamp="1582191789663">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="111" key="GridCell.Tab.1.left/0.0.1366.728@0.0.1366.728" timestamp="1582099848749" />
<state width="1024" height="111" key="GridCell.Tab.1.right" timestamp="1582099848749">
<state width="1024" height="144" key="GridCell.Tab.1.left/0.0.1366.728@0.0.1366.728" timestamp="1582191789663" />
<state width="1024" height="144" key="GridCell.Tab.1.right" timestamp="1582191789663">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="111" key="GridCell.Tab.1.right/0.0.1366.728@0.0.1366.728" timestamp="1582099848749" />
<state width="1024" height="111" key="GridCell.Tab.2.bottom" timestamp="1582099848750">
<state width="1024" height="144" key="GridCell.Tab.1.right/0.0.1366.728@0.0.1366.728" timestamp="1582191789663" />
<state width="1024" height="144" key="GridCell.Tab.2.bottom" timestamp="1582191789664">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="111" key="GridCell.Tab.2.bottom/0.0.1366.728@0.0.1366.728" timestamp="1582099848750" />
<state width="1024" height="111" key="GridCell.Tab.2.center" timestamp="1582099848749">
<state width="1024" height="144" key="GridCell.Tab.2.bottom/0.0.1366.728@0.0.1366.728" timestamp="1582191789664" />
<state width="1024" height="144" key="GridCell.Tab.2.center" timestamp="1582191789664">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="111" key="GridCell.Tab.2.center/0.0.1366.728@0.0.1366.728" timestamp="1582099848749" />
<state width="1024" height="111" key="GridCell.Tab.2.left" timestamp="1582099848749">
<state width="1024" height="144" key="GridCell.Tab.2.center/0.0.1366.728@0.0.1366.728" timestamp="1582191789664" />
<state width="1024" height="144" key="GridCell.Tab.2.left" timestamp="1582191789663">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="111" key="GridCell.Tab.2.left/0.0.1366.728@0.0.1366.728" timestamp="1582099848749" />
<state width="1024" height="111" key="GridCell.Tab.2.right" timestamp="1582099848749">
<state width="1024" height="144" key="GridCell.Tab.2.left/0.0.1366.728@0.0.1366.728" timestamp="1582191789663" />
<state width="1024" height="144" key="GridCell.Tab.2.right" timestamp="1582191789664">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="111" key="GridCell.Tab.2.right/0.0.1366.728@0.0.1366.728" timestamp="1582099848749" />
<state width="1024" height="137" key="GridCell.Tab.3.bottom" timestamp="1581990081733">
<state width="1024" height="144" key="GridCell.Tab.2.right/0.0.1366.728@0.0.1366.728" timestamp="1582191789664" />
<state width="1024" height="421" key="GridCell.Tab.3.bottom" timestamp="1582162174434">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="137" key="GridCell.Tab.3.bottom/0.0.1366.728@0.0.1366.728" timestamp="1581990081733" />
<state width="1024" height="137" key="GridCell.Tab.3.center" timestamp="1581990081733">
<state width="1024" height="421" key="GridCell.Tab.3.bottom/0.0.1366.728@0.0.1366.728" timestamp="1582162174434" />
<state width="1024" height="421" key="GridCell.Tab.3.center" timestamp="1582162174434">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="137" key="GridCell.Tab.3.center/0.0.1366.728@0.0.1366.728" timestamp="1581990081733" />
<state width="1024" height="137" key="GridCell.Tab.3.left" timestamp="1581990081733">
<state width="1024" height="421" key="GridCell.Tab.3.center/0.0.1366.728@0.0.1366.728" timestamp="1582162174434" />
<state width="1024" height="421" key="GridCell.Tab.3.left" timestamp="1582162174434">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="137" key="GridCell.Tab.3.left/0.0.1366.728@0.0.1366.728" timestamp="1581990081733" />
<state width="1024" height="137" key="GridCell.Tab.3.right" timestamp="1581990081733">
<state width="1024" height="421" key="GridCell.Tab.3.left/0.0.1366.728@0.0.1366.728" timestamp="1582162174434" />
<state width="1024" height="421" key="GridCell.Tab.3.right" timestamp="1582162174434">
<screen x="0" y="0" width="1366" height="728" />
</state>
<state width="1024" height="137" key="GridCell.Tab.3.right/0.0.1366.728@0.0.1366.728" timestamp="1581990081733" />
<state width="1024" height="421" key="GridCell.Tab.3.right/0.0.1366.728@0.0.1366.728" timestamp="1582162174434" />
<state width="1024" height="137" key="GridCell.Tab.4.bottom" timestamp="1581990081733">
<screen x="0" y="0" width="1366" height="728" />
</state>

@ -0,0 +1,197 @@
package cn.ppdxzz.controller;
import cn.ppdxzz.domain.Dorm;
import cn.ppdxzz.service.DormService;
import com.github.pagehelper.PageInfo;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.List;
/**
* Description:
*
* @Date: 2020/2/19 21:01
* @Author: PeiChen
*/
@RequestMapping("/dorm")
@Controller
public class DormController {
private DormService dormService;
@Autowired
public void setDormService(DormService dormService) {
this.dormService = dormService;
}
/**
* 宿
* @param page
* @param size
* @param request
* @param response
* @return
* @throws Exception
*/
@RequestMapping("/findAll")
public ModelAndView findAll(@RequestParam(name = "page", required = true, defaultValue = "1")int page, @RequestParam(name = "size", required = true, defaultValue = "4") int size, HttpServletRequest request, HttpServletResponse response) throws Exception {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
ModelAndView mv = new ModelAndView();
List<Dorm> dorms = null;
String keyword = request.getParameter("keyword");
if (keyword == null || "".trim().equals(keyword)) {
dorms = dormService.findAll(page,size);
}else {
dorms = dormService.search(page,size,keyword);
}
PageInfo pageInfo = new PageInfo(dorms);
mv.addObject("pageInfo",pageInfo);
mv.setViewName("dorm-list");
return mv;
}
/**
* 宿
* @return
* @throws Exception
*/
@RequestMapping("/toAdd")
public String addDorm() throws Exception {
return "dorm-add";
}
/**
* 宿
* @param dorm
* @param response
* @throws Exception
*/
@RequestMapping("/add")
public void add(Dorm dorm,HttpServletResponse response) throws Exception {
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();
if (dorm == null || dorm.getDorm_id() == null || dorm.getDorm_intro() == null || dorm.getDorm_rps() == null
|| dorm.getDorm_leader() == null || dorm.getTeacher() == null) {
writer.write("false");
return;
}
Dorm isNull = dormService.findByDormId(dorm.getDorm_id());
if (isNull != null) {
writer.write("false");
return;
}
dormService.add(dorm);
writer.write("true");
}
/**
* 宿宿,true
* @param request
* @param response
* @throws Exception
*/
@RequestMapping("/isExist")
public void isExist(HttpServletRequest request,HttpServletResponse response) throws Exception {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();
String dorm_id = request.getParameter("dorm_id");
Dorm isNull = dormService.findByDormId(dorm_id);
if (isNull == null) {
writer.write("true");
return;
}
}
/**
* id宿宿
* @param request
* @return
* @throws Exception
*/
@RequestMapping("/toUpdate")
public ModelAndView toUpdate(HttpServletRequest request) throws Exception {
request.setCharacterEncoding("utf-8");
ModelAndView mv = new ModelAndView();
String id = request.getParameter("id");
if (id == null) {
return mv;
}
Dorm dorm = dormService.findById(id);
mv.addObject("dorm",dorm);
mv.setViewName("dorm-edit");
return mv;
}
/**
* 宿
* @param dorm
* @param response
* @throws Exception
*/
@RequestMapping("/update")
public void update(Dorm dorm,HttpServletResponse response) throws Exception {
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();
if (dorm == null ||dorm.getId() == null || dorm.getDorm_id() == null || dorm.getDorm_intro() == null || dorm.getDorm_rps() == null
|| dorm.getDorm_leader() == null || dorm.getTeacher() == null) {
writer.write("false");
return;
}
dormService.update(dorm);
writer.write("true");
}
/**
* 宿
* @param response
* @throws Exception
*/
@RequestMapping("/export")
public void export(HttpServletResponse response) throws Exception {
InputStream is = dormService.getInputStream();
response.setContentType("application/vnd.ms-excel");
response.setHeader("contentDisposition","attachment;filename=dormInfo.xls");
ServletOutputStream outputStream = response.getOutputStream();
IOUtils.copy(is,outputStream);
}
/**
*
* @param request
* @return
* @throws Exception
*/
@RequestMapping("/look")
public ModelAndView look(HttpServletRequest request) throws Exception {
String id = request.getParameter("id");
ModelAndView mv = new ModelAndView();
Dorm dorm = dormService.findById(id);
mv.addObject("dorm",dorm);
mv.setViewName("look-dorm");
return mv;
}
}

@ -0,0 +1,64 @@
package cn.ppdxzz.dao;
import cn.ppdxzz.domain.Dorm;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* Description:
*
* @Date: 2020/2/19 18:28
* @Author: PeiChen
*/
@Repository
public interface DormDao {
/**
* 宿
* @return
* @throws Exception
*/
@Select("select * from dorms")
List<Dorm> findAll() throws Exception;
/**
* 宿
* @param keyword
* @return
* @throws Exception
*/
@Select("select * from dorms where dorm_id like '%${keyword}%' or dorm_intro like '%${keyword}%' or dorm_rps like '%${keyword}%' or dorm_leader like '%${keyword}%' or teacher like '%${keyword}%' ")
List<Dorm> search(@Param(value = "keyword") String keyword) throws Exception;
/**
* 宿
* @param dorm
* @throws Exception
*/
@Insert("insert into dorms(dorm_id,dorm_intro,dorm_rps,dorm_leader,teacher) values(#{dorm_id},#{dorm_intro},#{dorm_rps},#{dorm_leader},#{teacher})")
void add(Dorm dorm) throws Exception;
/**
* 宿
* @param dorm
* @throws Exception
*/
@Update("update dorms set dorm_id = #{dorm_id},dorm_intro = #{dorm_intro},dorm_rps = #{dorm_rps},dorm_leader = #{dorm_leader},teacher = #{teacher} where id = #{id}")
void update(Dorm dorm) throws Exception;
/**
* 宿宿
* @param id
* @throws Exception
*/
@Delete("delete from dorms where id = #{id}")
void delete(String id) throws Exception;
@Select("select * from dorms where dorm_id = #{dorm_id}")
Dorm findByDormId(String dorm_id) throws Exception;
@Select("select * from dorms where id = #{id}")
Dorm findById(String id) throws Exception;
}

@ -0,0 +1,90 @@
package cn.ppdxzz.domain;
import java.io.Serializable;
/**
* Description:宿
*
* @Date: 2020/2/19 17:51
* @Author: PeiChen
*/
public class Dorm implements Serializable {
private Integer id;//ID
private String dorm_id;//宿舍号
private String dorm_intro;//宿舍简介
private String dorm_rps;//宿舍荣誉
private String dorm_leader;//宿舍长
private String teacher;//管辖育人导师
public Dorm() {
}
public Dorm(Integer id, String dorm_id, String dorm_intro, String dorm_rps, String dorm_leader, String teacher) {
this.id = id;
this.dorm_id = dorm_id;
this.dorm_intro = dorm_intro;
this.dorm_rps = dorm_rps;
this.dorm_leader = dorm_leader;
this.teacher = teacher;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDorm_id() {
return dorm_id;
}
public void setDorm_id(String dorm_id) {
this.dorm_id = dorm_id;
}
public String getDorm_intro() {
return dorm_intro;
}
public void setDorm_intro(String dorm_intro) {
this.dorm_intro = dorm_intro;
}
public String getDorm_rps() {
return dorm_rps;
}
public void setDorm_rps(String dorm_rps) {
this.dorm_rps = dorm_rps;
}
public String getDorm_leader() {
return dorm_leader;
}
public void setDorm_leader(String dorm_leader) {
this.dorm_leader = dorm_leader;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
@Override
public String toString() {
return "Dorm{" +
"id=" + id +
", dorm_id='" + dorm_id + '\'' +
", dorm_intro='" + dorm_intro + '\'' +
", dorm_rps='" + dorm_rps + '\'' +
", dorm_leader='" + dorm_leader + '\'' +
", teacher='" + teacher + '\'' +
'}';
}
}

@ -0,0 +1,29 @@
package cn.ppdxzz.service;
import cn.ppdxzz.domain.Dorm;
import java.io.InputStream;
import java.util.List;
/**
* Description:
*
* @Date: 2020/2/19 19:52
* @Author: PeiChen
*/
public interface DormService {
List<Dorm> findAll(int page,int size) throws Exception;
List<Dorm> search(int page,int size,String keyword) throws Exception;
void add(Dorm dorm) throws Exception;
void update(Dorm dorm) throws Exception;
InputStream getInputStream() throws Exception;
Dorm findByDormId(String dorm_id) throws Exception;
Dorm findById(String id) throws Exception;
}

@ -28,4 +28,5 @@ public interface StudentService {
//返回一个携带所有学生信息数据的InputStream输入流
InputStream getInputStream() throws Exception;
}

@ -0,0 +1,114 @@
package cn.ppdxzz.service.impl;
import cn.ppdxzz.dao.DormDao;
import cn.ppdxzz.domain.Dorm;
import cn.ppdxzz.poi.WriteExcel;
import cn.ppdxzz.service.DormService;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
* Description:
*
* @Date: 2020/2/19 20:22
* @Author: PeiChen
*/
@Transactional
@Service("dormService")
public class DormServiceImpl implements DormService {
private DormDao dormDao;
@Autowired
public void setDormDao(DormDao dormDao) {
this.dormDao = dormDao;
}
/**
* 宿
* @param page
* @param size
* @return
* @throws Exception
*/
@Override
public List<Dorm> findAll(int page, int size) throws Exception {
PageHelper.startPage(page,size);
return dormDao.findAll();
}
/**
* keyword宿
* @param page
* @param size
* @param keyword
* @return
* @throws Exception
*/
@Override
public List<Dorm> search(int page, int size, String keyword) throws Exception {
PageHelper.startPage(page,size);
return dormDao.search(keyword);
}
/**
* 宿
* @param dorm
* @throws Exception
*/
@Override
public void add(Dorm dorm) throws Exception {
dormDao.add(dorm);
}
/**
* 宿
* @param dorm
* @throws Exception
*/
@Override
public void update(Dorm dorm) throws Exception {
dormDao.update(dorm);
}
/**
* 宿
* @return
* @throws Exception
*/
@Override
public InputStream getInputStream() throws Exception {
//Excel中的每列列名依次对应数据库的字段
String[] title = new String[]{"ID","宿舍号","宿舍简介","宿舍荣誉","宿舍长","育人导师"};
List<Dorm> dorms = dormDao.findAll();
List<Object[]> datalist = new ArrayList<>();
for (int i = 0; i < dorms.size(); i++) {
Object[] obj = new Object[6];
obj[0] = dorms.get(i).getId();
obj[1] = dorms.get(i).getDorm_id();
obj[2] = dorms.get(i).getDorm_intro();
obj[3] = dorms.get(i).getDorm_rps();
obj[4] = dorms.get(i).getDorm_leader();
obj[5] = dorms.get(i).getTeacher();
datalist.add(obj);
}
WriteExcel excel = new WriteExcel(title,datalist);
return excel.export();
}
@Override
public Dorm findByDormId(String dorm_id) throws Exception {
return dormDao.findByDormId(dorm_id);
}
@Override
public Dorm findById(String id) throws Exception {
return dormDao.findById(id);
}
}

@ -0,0 +1,166 @@
<%--
Created by IntelliJ IDEA.
User: user
Date: 2020/2/19
Time: 21:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/layer/layer.js"></script>
</head>
<body>
<br />
<form>
<table class="table" style="width: 100%;text-align: center;">
<tbody>
<tr>
<td><label for="dorm3">宿舍号</label></td>
<td>
<select class="form-control" name="dorm1" id="dorm1">
<option value="西六" selected>西六</option>
<option value="西七">西七</option>
<option value="西十二">西十二</option>
<option value="西十三">西十三</option>
</select>
</td>
<td><select class="form-control" name="dorm2" id="dorm2">
<option value="A" selected>A</option>
<option value="B">B</option>
</select></td>
<td>
<input type="text" name="dorm3" placeholder="请直接输入宿舍号" class="form-control" id="dorm3" list="did" required>
<datalist id="did">
<option value="101" />
<option value="102" />
<option value="103" />
<option value="104" />
<option value="105" />
<option value="106" />
<option value="107" />
<option value="108" />
<option value="109" />
<option value="110" />
<option value="111" />
<option value="112" />
<option value="201" />
<option value="202" />
<option value="203" />
<option value="204" />
<option value="205" />
<option value="206" />
<option value="207" />
<option value="208" />
<option value="209" />
<option value="210" />
<option value="211" />
<option value="212" />
</datalist>
</td>
<!-- <input type="text" name="dorm3" placeholder="请直接输入宿舍号" class="form-control" id="dorm3" required> -->
</td>
</tr>
<tr>
<td><label for="dorm_intro">宿舍简介</label></td>
<td colspan="3">
<textarea class="form-control" id="dorm_intro" name="dorm_intro" cols="2" maxlength="80" placeholder="请输入宿舍简介" required="required"></textarea>
</td>
</tr>
<tr>
<td>
<label for="dorm_rps">宿舍奖惩</label>
</td>
<td colspan="3">
<input type="text" name="dorm_rps" class="form-control" id="dorm_rps" value="无" placeholder="" list="rpsList" required>
<datalist id="rpsList">
<option value="年度最佳宿舍" />
<option value="年度活跃宿舍" />
<option value="年度文明宿舍" />
<option value="最佳学习宿舍" />
<option value="卫生最佳宿舍" />
<option value="最佳骨干宿舍" />
</datalist>
</td>
</tr>
<tr>
<td>
<label for="dorm_leader">宿舍长</label>
</td>
<td colspan="3">
<input type="text" name="dorm_leader" class="form-control" id="dorm_leader" required>
</td>
</tr>
<tr>
<td><label for="teacher">育人导师</label></td>
<td colspan="3">
<select class="form-control" name="teacher" id="teacher">
<option value="小李" selected>小李</option>
<option value="小王">小王</option>
<option value="小赵">小赵</option>
<option value="小飞">小飞</option>
<option value="小张">小张</option>
</select>
</td>
</tr>
<tr>
<td colspan="4">
<button type="button" id="add-dorm" class="btn btn-primary">确认添加</button>
<a type="button" href="${pageContext.request.contextPath}/dorm/findAll" class="btn btn-default">返回列表</a>
</td>
</tr>
</tbody>
</table>
</form>
<script>
$("#add-dorm").click(function () {
var dorm3 = $("#dorm3").val().trim();
var dorm_intro = $("#dorm_intro").val().trim();
var dorm_rps = $("#dorm_rps").val().trim();
var dorm_leader = $("#dorm_leader").val().trim();
var teacher = $("#teacher").val().trim();
if (dorm3.length == 0 || dorm_intro.length == 0 || dorm_rps.length == 0 || dorm_leader == 0 || teacher.length == 0) {
layer.msg('字段不能为空');
return false;
}
if (${sessionScope.adminInfo.power < 2}) {
layer.msg('权限不足');
return false;
}
var d1 = $("#dorm1").val();
var d2 = $("#dorm2").val();
var dorm_id = d1+""+d2+""+dorm3;
//alert(dorm_id);
$.ajax({
url: "${pageContext.request.contextPath}/dorm/add",//要请求的服务器url
//这是一个对象表示请求的参数两个参数method=ajax&val=xxx服务器可以通过request.getParameter()来获取
//data:{method:"ajaxTest",val:value},
data: {
dorm_id:dorm_id,
dorm_intro:dorm_intro,
dorm_rps: dorm_rps,
dorm_leader:dorm_leader,
teacher: teacher,
},
type: "POST", //请求方式为POST
dataType: "json",
success:function(result){ //这个方法会在服务器执行成功时被调用 参数data就是服务器返回的值(现在是json类型)
//alert(result);
if(result){
layer.msg('添加成功!');
setTimeout(function () {window.location.href='${pageContext.request.contextPath}/dorm/findAll?page=1&size=4';},2000);
}else {
layer.msg('添加失败,请联系管理员');
setTimeout(function () {window.location.href='${pageContext.request.contextPath}/dorm/findAll?page=1&size=4';},2000);
}
}
});
});
</script>
</body>
</html>

@ -0,0 +1,237 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: user
Date: 2020/2/19
Time: 21:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/layer/layer.js"></script>
</head>
<body>
<br />
<form>
<table class="table" style="width: 100%;text-align: center;">
<tbody>
<tr>
<td><label for="dorm_id">宿舍号</label></td>
<td>
<input type="hidden" id="id" name="id" value="${dorm.id}">
<c:if test="${sessionScope.adminInfo.power > 3}">
<input type="text" name="dorm_id" placeholder="例:西七B209" value="${dorm.dorm_id}" class="form-control" id="dorm_id" required>
</c:if>
<c:if test="${sessionScope.adminInfo.power <= 3}">
<input type="text" name="dorm_id" placeholder="" value="${dorm.dorm_id}" readonly class="form-control" id="dorm_id" required>
</c:if>
</td>
</tr>
<tr>
<td><label for="dorm_intro">宿舍简介</label></td>
<td colspan="3">
<input class="form-control" id="dorm_intro" value="${dorm.dorm_intro}" name="dorm_intro" cols="2" maxlength="80" placeholder="请输入宿舍简介" required="required">
</td>
</tr>
<tr>
<td>
<label for="dorm_rps">宿舍奖惩</label>
</td>
<td colspan="3">
<c:if test="${dorm.dorm_rps == '年度最佳宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍" selected>年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '年度活跃宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍" selected>年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '年度文明宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍" selected>年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '最佳学习宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍" selected>最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '卫生最佳宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍" selected>卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '最佳骨干宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍" selected>最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '无'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
</td>
</tr>
<tr>
<td>
<label for="dorm_leader">宿舍长</label>
</td>
<td colspan="3">
<input type="text" name="dorm_leader" value="${dorm.dorm_leader}" class="form-control" id="dorm_leader" required>
</td>
</tr>
<tr>
<td><label for="teacher">育人导师</label></td>
<td colspan="3">
<c:if test="${dorm.teacher == '小李'}">
<select class="form-control" name="teacher" id="teacher">
<option value="小李" selected>小李</option>
<option value="小王">小王</option>
<option value="小赵">小赵</option>
<option value="小飞">小飞</option>
<option value="小张">小张</option>
</select>
</c:if>
<c:if test="${dorm.teacher == '小王'}">
<select class="form-control" name="teacher" id="teacher">
<option value="小李">小李</option>
<option value="小王" selected>小王</option>
<option value="小赵">小赵</option>
<option value="小飞">小飞</option>
<option value="小张">小张</option>
</select>
</c:if>
<c:if test="${dorm.teacher == '小赵'}">
<select class="form-control" name="teacher" id="teacher">
<option value="小李">小李</option>
<option value="小王">小王</option>
<option value="小赵" selected>小赵</option>
<option value="小飞">小飞</option>
<option value="小张">小张</option>
</select>
</c:if>
<c:if test="${dorm.teacher == '小飞'}">
<select class="form-control" name="teacher" id="teacher">
<option value="小李">小李</option>
<option value="小王">小王</option>
<option value="小赵">小赵</option>
<option value="小飞" selected>小飞</option>
<option value="小张">小张</option>
</select>
</c:if>
<c:if test="${dorm.teacher == '小张'}">
<select class="form-control" name="teacher" id="teacher">
<option value="小李">小李</option>
<option value="小王">小王</option>
<option value="小赵">小赵</option>
<option value="小飞">小飞</option>
<option value="小张" selected>小张</option>
</select>
</c:if>
</td>
</tr>
<tr>
<td colspan="4">
<button type="button" id="update-dorm" class="btn btn-warning">确认修改</button>
<a type="button" href="${pageContext.request.contextPath}/dorm/findAll" class="btn btn-default">返回列表</a>
</td>
</tr>
</tbody>
</table>
</form>
<script>
$("#update-dorm").click(function () {
var id = $("#id").val().trim();
var dorm_id = $("#dorm_id").val().trim();
var dorm_intro = $("#dorm_intro").val().trim();
var dorm_rps = $("#dorm_rps").val().trim();
var dorm_leader = $("#dorm_leader").val().trim();
var teacher = $("#teacher").val().trim();
if (id.length == 0 || dorm_id.length == 0 || dorm_intro.length == 0 || dorm_rps.length == 0 || dorm_leader == 0 || teacher.length == 0) {
layer.msg('字段不能为空');
return false;
}
if (${sessionScope.adminInfo.power < 1}) {
layer.msg('权限不足');
return false;
}
$.ajax({
url: "${pageContext.request.contextPath}/dorm/update",//要请求的服务器url
//这是一个对象表示请求的参数两个参数method=ajax&val=xxx服务器可以通过request.getParameter()来获取
//data:{method:"ajaxTest",val:value},
data: {
id:id,
dorm_id:dorm_id,
dorm_intro:dorm_intro,
dorm_rps: dorm_rps,
dorm_leader:dorm_leader,
teacher: teacher,
},
type: "POST", //请求方式为POST
dataType: "json",
success:function(result){ //这个方法会在服务器执行成功时被调用 参数data就是服务器返回的值(现在是json类型)
//alert(result);
if(result){
layer.msg('修改成功!');
setTimeout(function () {window.location.href='${pageContext.request.contextPath}/dorm/findAll?page=1&size=4';},2000);
}else {
layer.msg('修改失败,请联系管理员');
setTimeout(function () {window.location.href='${pageContext.request.contextPath}/dorm/findAll?page=1&size=4';},2000);
}
}
});
});
</script>
</body>
</html>

@ -0,0 +1,210 @@
<%--
Created by IntelliJ IDEA.
User: user
Date: 2020/2/18
Time: 15:56
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html class="x-admin-sm">
<head>
<meta charset="UTF-8">
<title></title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/font.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/xadmin.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.1.1.js"></script>
<script src="${pageContext.request.contextPath}/lib/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/xadmin.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.1.1.js"></script>
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script>
function changePageSize() {
//获取下拉框的值
var pageSize = $("#changePageSize").val();
//向服务器发送请求,改变每页显示条数
location.href = "${pageContext.request.contextPath}/dorm/findAll?page=1&size="+ pageSize;
}
$("#serarch_btn").click(function () {
var keyword = $("#keyword").val();
location.href="${pageContext.request.contextPath}/dorm/findAll?page=1&size=4&keyword="+keyword;
});
$("#refresh").click(function () {
$("#myform").reset();
location.href="${pageContext.request.contextPath}/dorm/findAll?page=1&size=4";
});
</script>
</head>
<body>
<%--<div class="x-nav">
<span class="layui-breadcrumb">
<a href="">首页</a>
<a href="">演示</a>
<a>
<cite>导航元素</cite></a>
</span>
<a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" onclick="location.reload()" title="刷新">
<i class="layui-icon layui-icon-refresh" style="line-height:30px"></i></a>
</div>--%>
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body ">
<form id="myform" class="layui-form layui-col-space5">
<div class="layui-inline layui-show-xs-block">
<input class="layui-input" type="text" autocomplete="off" placeholder="请输入关键字" name="keyword" id="keyword" value="${param.keyword}">
</div>
<div class="layui-inline layui-show-xs-block">
<button class="layui-btn" id="serarch_btn" lay-submit="" lay-filter="sreach"><i class="layui-icon">&#xe615;</i></button>
</div>
<div class="layui-inline layui-show-xs-block x-right">
<a class="layui-btn layui-btn-normal" href="${pageContext.request.contextPath}/dorm/findAll?page=1&size=4"><i class="layui-icon">&#xe669;</i></a>
</div>
</form>
</div>
<xblock>
<a href="${pageContext.request.contextPath}/dorm/toAdd" class="layui-btn layui-btn-normal"><i class="layui-icon">&#xe654;</i>添加</a>
<a onclick="exportInfo(${sessionScope.adminInfo.power})" class="layui-btn layui-btn-warm" href="javascript:;"><i class="layui-icon">&#xe67c;</i>导出</a>
<span class="x-right" style="line-height:40px">共有数据:${pageInfo.total} 条</span>
</xblock>
<div class="layui-card-body">
<table class="layui-table layui-form" style="table-layout: fixed;width: 100%">
<thead>
<tr style="text-align: center">
<th style="text-align: center">ID</th>
<th style="text-align: center">宿舍号</th>
<th style="text-align: center">宿舍简介</th>
<th style="text-align: center">宿舍奖惩</th>
<th style="text-align: center">宿舍长</th>
<th style="text-align: center">育人导师</th>
<c:if test="${sessionScope.adminInfo.power > 2}">
<th style="text-align: center">操作</th>
</c:if>
</thead>
<tbody>
<%
int j = 1;
%>
<c:forEach items="${pageInfo.list}" var="dorm">
<tr id="light" style="text-align: center">
<td><%=j++%></td>
<td>${dorm.dorm_id}</td>
<td style="white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">${dorm.dorm_intro}</td>
<td style="white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">${dorm.dorm_rps}</td>
<td>${dorm.dorm_leader}</td>
<td>${dorm.teacher}</td>
<c:if test="${sessionScope.adminInfo.power > 2}">
<td class="td-manage">
<a title="更新信息" href="${pageContext.request.contextPath}/dorm/toUpdate?id=${dorm.id}">
<i class="layui-icon">&#xe642;</i>
</a>
<a title="查看详情" onclick="look(${dorm.id})" href="javascript:;">
<i class="layui-icon">&#xe60a;</i>
</a>
</td>
</c:if>
</c:forEach>
</tr>
</tbody>
</table>
</div>
<div class="pull-left">
<div class="form-group form-inline">
共&nbsp;${pageInfo.pages}&nbsp;页&emsp;当前页:${pageInfo.pageNum}&nbsp;/&nbsp;${pageInfo.pages}&emsp; 每页
<select class="form-control" id="changePageSize" onchange="changePageSize()">
<option value="1">${pageInfo.size}</option>
<option value="2">2</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
</select> 条
</div>
</div>
<c:choose>
<c:when test="${pageInfo.pages < 5}">
<c:set var="begin" value="1">
</c:set>
<c:set var="end" value="${pageInfo.pages}">
</c:set>
</c:when>
<c:when test="${pageInfo.pageNum <= 3}">
<c:set var="begin" value="1">
</c:set>
<c:set var="end" value="5">
</c:set>
</c:when>
<c:when test="${pageInfo.pageNum > 3 and pageInfo.pageNum <= pageInfo.pages-2}">
<c:set var="begin" value="${pageInfo.pageNum - 2}">
</c:set>
<c:set var="end" value="${pageInfo.pageNum + 2}">
</c:set>
</c:when>
<c:otherwise>
<c:set var="begin" value="${pageInfo.pages - 4}">
</c:set>
<c:set var="end" value="${pageInfo.pages}">
</c:set>
</c:otherwise>
</c:choose>
<div class="layui-card-body x-right" style="height: min-content">
<div class="page">
<div>
<a class="next" href="${pageContext.request.contextPath}/dorm/findAll?page=1&size=${pageInfo.pageSize}&keyword=${param.keyword}">首页</a>
<c:if test="${pageInfo.pageNum > 1}">
<a class="prev" href="${pageContext.request.contextPath}/dorm/findAll?page=${pageInfo.pageNum-1}&size=${pageInfo.pageSize}&keyword=${param.keyword}">上一页</a>
</c:if>
<c:forEach var="i" begin="${begin}" end="${end}" step="1">
<c:if test="${pageInfo.pageNum == i}">
<span class="current">${i}</span>
</c:if>
<c:if test="${pageInfo.pageNum != i}">
<a class="num" href="${pageContext.request.contextPath}/dorm/findAll?page=${i}&size=${pageInfo.pageSize}&keyword=${param.keyword}">${i}</a>
</c:if>
</c:forEach>
<c:if test="${pageInfo.pageNum < pageInfo.pages}">
<a class="next" href="${pageContext.request.contextPath}/dorm/findAll?page=${pageInfo.pageNum+1}&size=${pageInfo.pageSize}&keyword=${param.keyword}">下一页</a>
</c:if>
<a class="next" href="${pageContext.request.contextPath}/dorm/findAll?page=${pageInfo.pages}&size=${pageInfo.pageSize}&keyword=${param.keyword}">尾页</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
//查看详情
function look(id) {
layer.open({
type: 2,
title:'宿舍详情',
skin: 'layui-layer-rim', //加上边框
area: ['800px', '430px'], //宽高
content: '${pageContext.request.contextPath}/dorm/look?id='+id
});
}
//导出Excel操作
function exportInfo(power) {
if (power < 3) {
layer.msg('对不起,您没有权限导出宿舍信息');
return false;
}
layer.confirm('确定导出所有宿舍数据吗?',function (index) {
location.href="${pageContext.request.contextPath}/dorm/export";
layer.close(index);
});
}
</script>
</body>
</html>

@ -0,0 +1,53 @@
<%--
Created by IntelliJ IDEA.
User: user
Date: 2020/2/20
Time: 17:17
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/layer/layer.js"></script>
</head>
<body>
<br />
<form>
<table class="table" style="width: 100%;text-align: center;">
<tbody>
<tr>
<td style="text-align: center"><label>宿舍号</label></td>
<td colspan="3" style="text-align: center">${dorm.dorm_id}</td>
</tr>
<tr>
<td style="text-align: center"><label>宿舍简介</label></td>
<td colspan="3" style="text-align: center">${dorm.dorm_intro}</td>
</tr>
<tr>
<td style="text-align: center">
<label>宿舍奖惩</label>
</td>
<td colspan="3" style="text-align: center">${dorm.dorm_rps}</td>
</tr>
<tr>
<td style="text-align: center">
<label>宿舍长</label>
</td>
<td colspan="3" style="text-align: center">${dorm.dorm_leader}</td>
</tr>
<tr>
<td style="text-align: center"><label>育人导师</label></td>
<td colspan="3" style="text-align: center">${dorm.teacher}</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>

@ -117,7 +117,7 @@
<i class="iconfont nav_right">&#xe697;</i></a>
<ul class="sub-menu">
<li>
<a onclick="xadmin.add_tab('宿舍列表','error.html')">
<a onclick="xadmin.add_tab('宿舍列表','${pageContext.request.contextPath}/dorm/findAll?page=1&size=4')">
<i class="iconfont">&#xe6a7;</i>
<cite>宿舍列表</cite></a>
</li>

@ -0,0 +1,166 @@
<%--
Created by IntelliJ IDEA.
User: user
Date: 2020/2/19
Time: 21:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/layer/layer.js"></script>
</head>
<body>
<br />
<form>
<table class="table" style="width: 100%;text-align: center;">
<tbody>
<tr>
<td><label for="dorm3">宿舍号</label></td>
<td>
<select class="form-control" name="dorm1" id="dorm1">
<option value="西六" selected>西六</option>
<option value="西七">西七</option>
<option value="西十二">西十二</option>
<option value="西十三">西十三</option>
</select>
</td>
<td><select class="form-control" name="dorm2" id="dorm2">
<option value="A" selected>A</option>
<option value="B">B</option>
</select></td>
<td>
<input type="text" name="dorm3" placeholder="请直接输入宿舍号" class="form-control" id="dorm3" list="did" required>
<datalist id="did">
<option value="101" />
<option value="102" />
<option value="103" />
<option value="104" />
<option value="105" />
<option value="106" />
<option value="107" />
<option value="108" />
<option value="109" />
<option value="110" />
<option value="111" />
<option value="112" />
<option value="201" />
<option value="202" />
<option value="203" />
<option value="204" />
<option value="205" />
<option value="206" />
<option value="207" />
<option value="208" />
<option value="209" />
<option value="210" />
<option value="211" />
<option value="212" />
</datalist>
</td>
<!-- <input type="text" name="dorm3" placeholder="请直接输入宿舍号" class="form-control" id="dorm3" required> -->
</td>
</tr>
<tr>
<td><label for="dorm_intro">宿舍简介</label></td>
<td colspan="3">
<textarea class="form-control" id="dorm_intro" name="dorm_intro" cols="2" maxlength="80" placeholder="请输入宿舍简介" required="required"></textarea>
</td>
</tr>
<tr>
<td>
<label for="dorm_rps">宿舍奖惩</label>
</td>
<td colspan="3">
<input type="text" name="dorm_rps" class="form-control" id="dorm_rps" value="无" placeholder="" list="rpsList" required>
<datalist id="rpsList">
<option value="年度最佳宿舍" />
<option value="年度活跃宿舍" />
<option value="年度文明宿舍" />
<option value="最佳学习宿舍" />
<option value="卫生最佳宿舍" />
<option value="最佳骨干宿舍" />
</datalist>
</td>
</tr>
<tr>
<td>
<label for="dorm_leader">宿舍长</label>
</td>
<td colspan="3">
<input type="text" name="dorm_leader" class="form-control" id="dorm_leader" required>
</td>
</tr>
<tr>
<td><label for="teacher">育人导师</label></td>
<td colspan="3">
<select class="form-control" name="teacher" id="teacher">
<option value="小李" selected>小李</option>
<option value="小王">小王</option>
<option value="小赵">小赵</option>
<option value="小飞">小飞</option>
<option value="小张">小张</option>
</select>
</td>
</tr>
<tr>
<td colspan="4">
<button type="button" id="add-dorm" class="btn btn-primary">确认添加</button>
<a type="button" href="${pageContext.request.contextPath}/dorm/findAll" class="btn btn-default">返回列表</a>
</td>
</tr>
</tbody>
</table>
</form>
<script>
$("#add-dorm").click(function () {
var dorm3 = $("#dorm3").val().trim();
var dorm_intro = $("#dorm_intro").val().trim();
var dorm_rps = $("#dorm_rps").val().trim();
var dorm_leader = $("#dorm_leader").val().trim();
var teacher = $("#teacher").val().trim();
if (dorm3.length == 0 || dorm_intro.length == 0 || dorm_rps.length == 0 || dorm_leader == 0 || teacher.length == 0) {
layer.msg('字段不能为空');
return false;
}
if (${sessionScope.adminInfo.power < 2}) {
layer.msg('权限不足');
return false;
}
var d1 = $("#dorm1").val();
var d2 = $("#dorm2").val();
var dorm_id = d1+""+d2+""+dorm3;
//alert(dorm_id);
$.ajax({
url: "${pageContext.request.contextPath}/dorm/add",//要请求的服务器url
//这是一个对象表示请求的参数两个参数method=ajax&val=xxx服务器可以通过request.getParameter()来获取
//data:{method:"ajaxTest",val:value},
data: {
dorm_id:dorm_id,
dorm_intro:dorm_intro,
dorm_rps: dorm_rps,
dorm_leader:dorm_leader,
teacher: teacher,
},
type: "POST", //请求方式为POST
dataType: "json",
success:function(result){ //这个方法会在服务器执行成功时被调用 参数data就是服务器返回的值(现在是json类型)
//alert(result);
if(result){
layer.msg('添加成功!');
setTimeout(function () {window.location.href='${pageContext.request.contextPath}/dorm/findAll?page=1&size=4';},2000);
}else {
layer.msg('添加失败,请联系管理员');
setTimeout(function () {window.location.href='${pageContext.request.contextPath}/dorm/findAll?page=1&size=4';},2000);
}
}
});
});
</script>
</body>
</html>

@ -0,0 +1,237 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: user
Date: 2020/2/19
Time: 21:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/layer/layer.js"></script>
</head>
<body>
<br />
<form>
<table class="table" style="width: 100%;text-align: center;">
<tbody>
<tr>
<td><label for="dorm_id">宿舍号</label></td>
<td>
<input type="hidden" id="id" name="id" value="${dorm.id}">
<c:if test="${sessionScope.adminInfo.power > 3}">
<input type="text" name="dorm_id" placeholder="例:西七B209" value="${dorm.dorm_id}" class="form-control" id="dorm_id" required>
</c:if>
<c:if test="${sessionScope.adminInfo.power <= 3}">
<input type="text" name="dorm_id" placeholder="" value="${dorm.dorm_id}" readonly class="form-control" id="dorm_id" required>
</c:if>
</td>
</tr>
<tr>
<td><label for="dorm_intro">宿舍简介</label></td>
<td colspan="3">
<input class="form-control" id="dorm_intro" value="${dorm.dorm_intro}" name="dorm_intro" cols="2" maxlength="80" placeholder="请输入宿舍简介" required="required">
</td>
</tr>
<tr>
<td>
<label for="dorm_rps">宿舍奖惩</label>
</td>
<td colspan="3">
<c:if test="${dorm.dorm_rps == '年度最佳宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍" selected>年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '年度活跃宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍" selected>年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '年度文明宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍" selected>年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '最佳学习宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍" selected>最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '卫生最佳宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍" selected>卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '最佳骨干宿舍'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍" selected>最佳骨干宿舍</option>
</select>
</c:if>
<c:if test="${dorm.dorm_rps == '无'}">
<select class="form-control" name="dorm_rps" id="dorm_rps">
<option value="无" selected>无</option>
<option value="年度最佳宿舍">年度最佳宿舍</option>
<option value="年度活跃宿舍">年度活跃宿舍</option>
<option value="年度文明宿舍">年度文明宿舍</option>
<option value="最佳学习宿舍">最佳学习宿舍</option>
<option value="卫生最佳宿舍">卫生最佳宿舍</option>
<option value="最佳骨干宿舍">最佳骨干宿舍</option>
</select>
</c:if>
</td>
</tr>
<tr>
<td>
<label for="dorm_leader">宿舍长</label>
</td>
<td colspan="3">
<input type="text" name="dorm_leader" value="${dorm.dorm_leader}" class="form-control" id="dorm_leader" required>
</td>
</tr>
<tr>
<td><label for="teacher">育人导师</label></td>
<td colspan="3">
<c:if test="${dorm.teacher == '小李'}">
<select class="form-control" name="teacher" id="teacher">
<option value="小李" selected>小李</option>
<option value="小王">小王</option>
<option value="小赵">小赵</option>
<option value="小飞">小飞</option>
<option value="小张">小张</option>
</select>
</c:if>
<c:if test="${dorm.teacher == '小王'}">
<select class="form-control" name="teacher" id="teacher">
<option value="小李">小李</option>
<option value="小王" selected>小王</option>
<option value="小赵">小赵</option>
<option value="小飞">小飞</option>
<option value="小张">小张</option>
</select>
</c:if>
<c:if test="${dorm.teacher == '小赵'}">
<select class="form-control" name="teacher" id="teacher">
<option value="小李">小李</option>
<option value="小王">小王</option>
<option value="小赵" selected>小赵</option>
<option value="小飞">小飞</option>
<option value="小张">小张</option>
</select>
</c:if>
<c:if test="${dorm.teacher == '小飞'}">
<select class="form-control" name="teacher" id="teacher">
<option value="小李">小李</option>
<option value="小王">小王</option>
<option value="小赵">小赵</option>
<option value="小飞" selected>小飞</option>
<option value="小张">小张</option>
</select>
</c:if>
<c:if test="${dorm.teacher == '小张'}">
<select class="form-control" name="teacher" id="teacher">
<option value="小李">小李</option>
<option value="小王">小王</option>
<option value="小赵">小赵</option>
<option value="小飞">小飞</option>
<option value="小张" selected>小张</option>
</select>
</c:if>
</td>
</tr>
<tr>
<td colspan="4">
<button type="button" id="update-dorm" class="btn btn-warning">确认修改</button>
<a type="button" href="${pageContext.request.contextPath}/dorm/findAll" class="btn btn-default">返回列表</a>
</td>
</tr>
</tbody>
</table>
</form>
<script>
$("#update-dorm").click(function () {
var id = $("#id").val().trim();
var dorm_id = $("#dorm_id").val().trim();
var dorm_intro = $("#dorm_intro").val().trim();
var dorm_rps = $("#dorm_rps").val().trim();
var dorm_leader = $("#dorm_leader").val().trim();
var teacher = $("#teacher").val().trim();
if (id.length == 0 || dorm_id.length == 0 || dorm_intro.length == 0 || dorm_rps.length == 0 || dorm_leader == 0 || teacher.length == 0) {
layer.msg('字段不能为空');
return false;
}
if (${sessionScope.adminInfo.power < 1}) {
layer.msg('权限不足');
return false;
}
$.ajax({
url: "${pageContext.request.contextPath}/dorm/update",//要请求的服务器url
//这是一个对象表示请求的参数两个参数method=ajax&val=xxx服务器可以通过request.getParameter()来获取
//data:{method:"ajaxTest",val:value},
data: {
id:id,
dorm_id:dorm_id,
dorm_intro:dorm_intro,
dorm_rps: dorm_rps,
dorm_leader:dorm_leader,
teacher: teacher,
},
type: "POST", //请求方式为POST
dataType: "json",
success:function(result){ //这个方法会在服务器执行成功时被调用 参数data就是服务器返回的值(现在是json类型)
//alert(result);
if(result){
layer.msg('修改成功!');
setTimeout(function () {window.location.href='${pageContext.request.contextPath}/dorm/findAll?page=1&size=4';},2000);
}else {
layer.msg('修改失败,请联系管理员');
setTimeout(function () {window.location.href='${pageContext.request.contextPath}/dorm/findAll?page=1&size=4';},2000);
}
}
});
});
</script>
</body>
</html>

@ -0,0 +1,210 @@
<%--
Created by IntelliJ IDEA.
User: user
Date: 2020/2/18
Time: 15:56
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html class="x-admin-sm">
<head>
<meta charset="UTF-8">
<title></title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/font.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/xadmin.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.1.1.js"></script>
<script src="${pageContext.request.contextPath}/lib/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/xadmin.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.1.1.js"></script>
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script>
function changePageSize() {
//获取下拉框的值
var pageSize = $("#changePageSize").val();
//向服务器发送请求,改变每页显示条数
location.href = "${pageContext.request.contextPath}/dorm/findAll?page=1&size="+ pageSize;
}
$("#serarch_btn").click(function () {
var keyword = $("#keyword").val();
location.href="${pageContext.request.contextPath}/dorm/findAll?page=1&size=4&keyword="+keyword;
});
$("#refresh").click(function () {
$("#myform").reset();
location.href="${pageContext.request.contextPath}/dorm/findAll?page=1&size=4";
});
</script>
</head>
<body>
<%--<div class="x-nav">
<span class="layui-breadcrumb">
<a href="">首页</a>
<a href="">演示</a>
<a>
<cite>导航元素</cite></a>
</span>
<a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" onclick="location.reload()" title="刷新">
<i class="layui-icon layui-icon-refresh" style="line-height:30px"></i></a>
</div>--%>
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body ">
<form id="myform" class="layui-form layui-col-space5">
<div class="layui-inline layui-show-xs-block">
<input class="layui-input" type="text" autocomplete="off" placeholder="请输入关键字" name="keyword" id="keyword" value="${param.keyword}">
</div>
<div class="layui-inline layui-show-xs-block">
<button class="layui-btn" id="serarch_btn" lay-submit="" lay-filter="sreach"><i class="layui-icon">&#xe615;</i></button>
</div>
<div class="layui-inline layui-show-xs-block x-right">
<a class="layui-btn layui-btn-normal" href="${pageContext.request.contextPath}/dorm/findAll?page=1&size=4"><i class="layui-icon">&#xe669;</i></a>
</div>
</form>
</div>
<xblock>
<a href="${pageContext.request.contextPath}/dorm/toAdd" class="layui-btn layui-btn-normal"><i class="layui-icon">&#xe654;</i>添加</a>
<a onclick="exportInfo(${sessionScope.adminInfo.power})" class="layui-btn layui-btn-warm" href="javascript:;"><i class="layui-icon">&#xe67c;</i>导出</a>
<span class="x-right" style="line-height:40px">共有数据:${pageInfo.total} 条</span>
</xblock>
<div class="layui-card-body">
<table class="layui-table layui-form" style="table-layout: fixed;width: 100%">
<thead>
<tr style="text-align: center">
<th style="text-align: center">ID</th>
<th style="text-align: center">宿舍号</th>
<th style="text-align: center">宿舍简介</th>
<th style="text-align: center">宿舍奖惩</th>
<th style="text-align: center">宿舍长</th>
<th style="text-align: center">育人导师</th>
<c:if test="${sessionScope.adminInfo.power > 2}">
<th style="text-align: center">操作</th>
</c:if>
</thead>
<tbody>
<%
int j = 1;
%>
<c:forEach items="${pageInfo.list}" var="dorm">
<tr id="light" style="text-align: center">
<td><%=j++%></td>
<td>${dorm.dorm_id}</td>
<td style="white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">${dorm.dorm_intro}</td>
<td style="white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">${dorm.dorm_rps}</td>
<td>${dorm.dorm_leader}</td>
<td>${dorm.teacher}</td>
<c:if test="${sessionScope.adminInfo.power > 2}">
<td class="td-manage">
<a title="更新信息" href="${pageContext.request.contextPath}/dorm/toUpdate?id=${dorm.id}">
<i class="layui-icon">&#xe642;</i>
</a>
<a title="查看详情" onclick="look(${dorm.id})" href="javascript:;">
<i class="layui-icon">&#xe60a;</i>
</a>
</td>
</c:if>
</c:forEach>
</tr>
</tbody>
</table>
</div>
<div class="pull-left">
<div class="form-group form-inline">
共&nbsp;${pageInfo.pages}&nbsp;页&emsp;当前页:${pageInfo.pageNum}&nbsp;/&nbsp;${pageInfo.pages}&emsp; 每页
<select class="form-control" id="changePageSize" onchange="changePageSize()">
<option value="1">${pageInfo.size}</option>
<option value="2">2</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
</select> 条
</div>
</div>
<c:choose>
<c:when test="${pageInfo.pages < 5}">
<c:set var="begin" value="1">
</c:set>
<c:set var="end" value="${pageInfo.pages}">
</c:set>
</c:when>
<c:when test="${pageInfo.pageNum <= 3}">
<c:set var="begin" value="1">
</c:set>
<c:set var="end" value="5">
</c:set>
</c:when>
<c:when test="${pageInfo.pageNum > 3 and pageInfo.pageNum <= pageInfo.pages-2}">
<c:set var="begin" value="${pageInfo.pageNum - 2}">
</c:set>
<c:set var="end" value="${pageInfo.pageNum + 2}">
</c:set>
</c:when>
<c:otherwise>
<c:set var="begin" value="${pageInfo.pages - 4}">
</c:set>
<c:set var="end" value="${pageInfo.pages}">
</c:set>
</c:otherwise>
</c:choose>
<div class="layui-card-body x-right" style="height: min-content">
<div class="page">
<div>
<a class="next" href="${pageContext.request.contextPath}/dorm/findAll?page=1&size=${pageInfo.pageSize}&keyword=${param.keyword}">首页</a>
<c:if test="${pageInfo.pageNum > 1}">
<a class="prev" href="${pageContext.request.contextPath}/dorm/findAll?page=${pageInfo.pageNum-1}&size=${pageInfo.pageSize}&keyword=${param.keyword}">上一页</a>
</c:if>
<c:forEach var="i" begin="${begin}" end="${end}" step="1">
<c:if test="${pageInfo.pageNum == i}">
<span class="current">${i}</span>
</c:if>
<c:if test="${pageInfo.pageNum != i}">
<a class="num" href="${pageContext.request.contextPath}/dorm/findAll?page=${i}&size=${pageInfo.pageSize}&keyword=${param.keyword}">${i}</a>
</c:if>
</c:forEach>
<c:if test="${pageInfo.pageNum < pageInfo.pages}">
<a class="next" href="${pageContext.request.contextPath}/dorm/findAll?page=${pageInfo.pageNum+1}&size=${pageInfo.pageSize}&keyword=${param.keyword}">下一页</a>
</c:if>
<a class="next" href="${pageContext.request.contextPath}/dorm/findAll?page=${pageInfo.pages}&size=${pageInfo.pageSize}&keyword=${param.keyword}">尾页</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
//查看详情
function look(id) {
layer.open({
type: 2,
title:'宿舍详情',
skin: 'layui-layer-rim', //加上边框
area: ['800px', '430px'], //宽高
content: '${pageContext.request.contextPath}/dorm/look?id='+id
});
}
//导出Excel操作
function exportInfo(power) {
if (power < 3) {
layer.msg('对不起,您没有权限导出宿舍信息');
return false;
}
layer.confirm('确定导出所有宿舍数据吗?',function (index) {
location.href="${pageContext.request.contextPath}/dorm/export";
layer.close(index);
});
}
</script>
</body>
</html>

@ -0,0 +1,53 @@
<%--
Created by IntelliJ IDEA.
User: user
Date: 2020/2/20
Time: 17:17
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/layer/layer.js"></script>
</head>
<body>
<br />
<form>
<table class="table" style="width: 100%;text-align: center;">
<tbody>
<tr>
<td style="text-align: center"><label>宿舍号</label></td>
<td colspan="3" style="text-align: center">${dorm.dorm_id}</td>
</tr>
<tr>
<td style="text-align: center"><label>宿舍简介</label></td>
<td colspan="3" style="text-align: center">${dorm.dorm_intro}</td>
</tr>
<tr>
<td style="text-align: center">
<label>宿舍奖惩</label>
</td>
<td colspan="3" style="text-align: center">${dorm.dorm_rps}</td>
</tr>
<tr>
<td style="text-align: center">
<label>宿舍长</label>
</td>
<td colspan="3" style="text-align: center">${dorm.dorm_leader}</td>
</tr>
<tr>
<td style="text-align: center"><label>育人导师</label></td>
<td colspan="3" style="text-align: center">${dorm.teacher}</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>

@ -117,7 +117,7 @@
<i class="iconfont nav_right">&#xe697;</i></a>
<ul class="sub-menu">
<li>
<a onclick="xadmin.add_tab('宿舍列表','error.html')">
<a onclick="xadmin.add_tab('宿舍列表','${pageContext.request.contextPath}/dorm/findAll?page=1&size=4')">
<i class="iconfont">&#xe6a7;</i>
<cite>宿舍列表</cite></a>
</li>

@ -1,13 +1,15 @@
### 宿管系统SSM框架日进度总结
### 宿管系统SSM框架
1. 2020.2.11首次接触并搭建了SSM框架环境完成持久层基本CRUD的功能测试并提供了管理员的登录校验功能以及登录页面用户名是否存在的功能。
2. 2020.2.12实现查询所有管理员信息并显示到页面添加基本的分页期间存在的一些问题是一开始不了解SpringMVC视图解析器的映射规则导致出现页面无法跳转的问题目前我SSM框架技术知识面了解有限暂时把页面跳转放在controller中后续技术更新后再另行解决。
3. 2020.2.13用bootstrap框架完成了管理员添加和修改的页面实现并加入jQuery校验字段是否为空最终实现了管理员添加以及修改功能。
4. 2020.2.14把原来的登录页面更换成动态特效的登录页面并使用ajax完成登录的后台校验管理员查询功能完成了模糊查询但是模糊查询带上分页技术后页面跳转出现问题点击分页按钮后又重新查询了全部数据的分页查看了相关资料进行改进目前并未完全实现。
5. 2020.2.15实现了管理员信息模糊查询并分页的效果并增加了超级管理员可给普通管理员授权的功能着手实现数据导出功能发现程序运行时报错经验证后发现是json格式从后台传向前台需要经过解析故导入了相关依赖即可而后又遇到layui的Excel模块不可用开始着手解决。
6. 2020.2.16实现了管理员数据Excel格式的导出并可以指定保存位置。
6. 2020.2.16第一次完成Excel格式导出实现了管理员数据Excel格式的导出并可以指定保存位置。
7. 2020.2.17结束了管理员模块并继续开发学生模块后台controller、service、dao的CRUD功能已完成并测试成功前台页面所有学生信息可分页展示删除功能已实现前台注册学生功能还未实现待明天实现。
8. 2020.2.18今天实现学生信息添加的时候使用ajax异步去请求后台的时候后台返回的结果前台接受不到捣鼓了一上午才发现原来是因为一个提交方式为“submit”使用异步应该将其设置为“button”特将其错误记录于此。下午结束了学生模块的基本操作进一步开发访客模块后台均已写好待设计前台访客来访记录表页面。
9. 2020.2.19基本完成了访客的CRUD模块以及导出功能前台实现访客登记但还未实现访客日志的功能后续会增加上此功能。
10. 2020.2.20,完成了宿舍模块的基本功能,同时新增了功能,表格内容过多会显示省略号,需点击详情页才能完整查看宿舍内容过长信息。
Loading…
Cancel
Save