在实习单位借Spring框架学做增删改查 的代码

        抱歉本人学艺不精,还不清楚怎么完整上传整个项目,而且也怕不小心上传一些公司的代码会侵权,所以只以部分自己写的代码的形式上传.

数据表

        Dao层:

        fyTestDao.java:

package 不.要.在.意.fyTest.dao;

import java.util.List;

import 不.要.在.意.CrudDao;
import 不.要.在.意.MyBatisDao;
import 不.要.在.意.fyTest.entity.FyTestUser;
@MyBatisDao
public interface FyTestDao extends CrudDao<FyTestUser>{

	List<FyTestUser> getFyTestUserList(FyTestUser fyTestUser);				//查

	void insertFyTestUser(FyTestUser fyTestUser);							//增
	
	List<FyTestUser> getFyTestUserListForCheckTuid(FyTestUser fyTestUser);	//在新增数据的前一刻使用,检查新建的数据的工号是否跟旧数据有重复
	
	void updateFyTestUserForStatus(FyTestUser fyTestUser);					//改状态
	
	void updateFyTestUserForAll(FyTestUser fyTestUser);						//改全部

	void deleteFyTestUser(FyTestUser fyTestUser);							//删
}

        fyTestDao.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="不.要.在.意.fyTest.dao.FyTestDao" >

	<!-- 查,默认展示所有表,搜索框里非空时进行对应搜索 -->
	<select id="getFyTestUserList" resultType="FyTestUser">
		select
			t.tuid					as"tuid"	
			,t.name					as"name"
			,t.sex					as"sex"
			,t.dep					as"departments"
			,t.status				as"status"
			,t.tel					as"telephone"
			,t.create_time			as"createTime"
			,t.amend_time			as"amendTime"	<!-- 读取出来的列名都会转成as设定后的"xxxx"名 -->
		from fy_test t								<!-- 让"t"来指代数据表fy_test,所以上面的tuid等数据列名前才会带有"t." -->	
		where tuid=tuid								<!-- 占位用,只是为了配合下面的判断语句if和and的组合 -->
		
		<if test="name != null and name != ''">
			and t.name like '%${name}%'
		</if>
		<if test="tuid != null and tuid != ''">		
			and t.tuid like '%${tuid}%'
		</if>
		order by t.amend_time desc					<!-- 让读取出来的表按照amend_time(修改时间)从大到小的顺序排序 -->
	</select>


	<!-- 增,插入一条新的数据 -->
	<insert id="insertFyTestUser">
	insert into fy_test(
		tuid
		,name
		,sex
		,dep
		,status
		,tel
		,create_time
		,amend_time
	)
	values(
		#{tuid}
		,#{name}
		,#{sex}
		,#{departments}
		,${status}									<!-- #{}和${}的区别就是#把输入内容当做字符串输入,$把输入内容直接输入,#可以防止SQL注入,能用#别用$,此处$当练手用 -->
		,#{telephone}
		,sysdate
		,sysdate
	)
	</insert>


	<!-- 在新增数据的前一刻使用,检查新建的数据的工号是否跟旧数据有重复 -->
	<select id="getFyTestUserListForCheckTuid" resultType="FyTestUser">
		select
			t.tuid					as"tuid"		<!-- 经测试,只选一个tuid功能也是正常使用.全选的推测:方便维护 -->
			,t.name					as"name"
			,t.sex					as"sex"
			,t.dep					as"departments"
			,t.status				as"status"
			,t.tel					as"telephone"
			,t.create_time			as"createTime"
			,t.amend_time			as"amendTime"
		from fy_test t
		where upper(t.tuid) = upper(#{tuid})		<!-- upper 所有小写字母转换为大写字母的大小写转换函数 -->
		order by t.amend_time desc					
	</select>


	<!-- 改,考虑到员工的状态会频繁切换,所以独立设置一个改变状态的功能-->
	<update id="updateFyTestUserForStatus">
	update fy_test t
	set t.status=${status}
		,t.amend_time=sysdate
	where t.tuid=#{tuid}
	</update>

	<!-- 改,将这个功能在前端的实现按钮放在主界面上,逻辑上就是根据tuid定位,更改其他位置的内容 -->
	<update id="updateFyTestUserForAll">
	update fy_test t
	set		
			t.name=#{name}		
			,t.sex=#{sex}				
			,t.dep=#{departments}				
			,t.status=${status}		
			,t.tel=#{telephone}				
		,t.amend_time=sysdate
	where tuid=#{tuid}
	</update>
	
	<!-- 删,十分正常的删 -->
	<delete id="deleteFyTestUser">
	delete from fy_test t
	where t.tuid=#{tuid}
	</delete>
</mapper>

        Service层:

        fyTestService.java:

package 不.要.在.意.fyTest.service;

import java.util.List;

import 不.要.在.意.Service;
import 不.要.在.意.Transactional;

import 不.要.在.意.Page;
import 不.要.在.意.CrudService;
import 不.要.在.意.fyTest.dao.FyTestDao;
import 不.要.在.意.fyTest.entity.FyTestUser;
import 不.要.在.意.FunctionReturn;

@Service												//对于 service层的类,在类上用 @Service注解声明
@Transactional(readOnly =false)							//表示该类需要读写事务支持
//老规矩,不管crudService,写上只是防止以后会有其他相配合的功能要使用它
public class FyTestService extends CrudService<FyTestDao,FyTestUser> {

	//获取page(查)
	public Page<FyTestUser> getFyTestPage(Page<FyTestUser> page,FyTestUser fyTestUser){    
		fyTestUser.setPage(page);
		page.setList(dao.getFyTestUserList(fyTestUser));
		return page;
	}
	
	//fytest表单页面(增)
	public FunctionReturn saveFyTestUser(FyTestUser fyTestUser){
		FunctionReturn functionReturn = new FunctionReturn();		
		//1.设置数据表时将工号设计为了主键(不允许有重复数据),所以要将这种情况设置为"储存失败"
		List<FyTestUser> checkList=dao.getFyTestUserListForCheckTuid(fyTestUser);
		if(checkList.size()>0){							//checkList.size返回的数据是数据条数,当数据大于0时代表Dao层在数据库里查到了相同工号的数据	
			functionReturn.setReturnCode(1);			//工号重复是不允许的,返回值"1",代表着错误
			functionReturn.setReturnMsg("添加失败:表单中已存在该工号,请确认");
			return functionReturn;						//因为if成真,工号确实有重复,所以不进行保存操作,直接在此处return,2操作也就不会进行了
		}
		//2.保存fytest表单信息
		dao.insertFyTestUser(fyTestUser);
		functionReturn.setReturnCode(0);
		functionReturn.setReturnMsg(fyTestUser.getName()+"["+fyTestUser.getTuid()+"]数据添加成功");
		
		return functionReturn;
	}
	
	
	//导出表单数据(查)
	public List<FyTestUser> getFyTestUserExportList(FyTestUser fyTestUser){
		return dao.getFyTestUserList(fyTestUser);
	}
	
	
	//移除表单数据 (删)
	public FunctionReturn deleteFyTestUser(FyTestUser fyTestUser){
		FunctionReturn functionReturn = new FunctionReturn();
		dao.deleteFyTestUser(fyTestUser);
		functionReturn.setReturnCode(0);
		functionReturn.setReturnMsg("移除成功");
		return functionReturn;
	}
	
	//改状态(改)
	public FunctionReturn updateFyTestUserForStatus(FyTestUser fyTestUser){
		FunctionReturn functionReturn=new FunctionReturn();
		dao.updateFyTestUserForStatus(fyTestUser);
		functionReturn.setReturnCode(0);
		functionReturn.setReturnMsg("状态更改成功");
		return functionReturn;
	}
	
	//改全部(改)
	public FunctionReturn updateFyTestUserForAll(FyTestUser fyTestUser){
		FunctionReturn functionReturn=new FunctionReturn();
		dao.updateFyTestUserForAll(fyTestUser);
		functionReturn.setReturnCode(0);
		functionReturn.setReturnMsg("整体更改成功");
		return functionReturn;
	}
}

        Web层:

        fyTestController.java:

package 不.要.在.意.fyTest.web;

import java.util.List;

import javax.servlet.http.HttpServletRequest;		//HttpServletRequest接收来自客户端的请求
import javax.servlet.http.HttpServletResponse;		//HttpServletResponse发出对客户端的响应

import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;				//它允许控制器向视图传递数据
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;


import 不.要.在.意.Page;
import 不.要.在.意.DateUtils;
import 不.要.在.意.Exceptions;
import 不.要.在.意.ExportExcel;
import 不.要.在.意.BaseController;
import 不.要.在.意.fyTest.entity.FyTestUser;
import 不.要.在.意.fyTest.service.FyTestService;
import c不.要.在.意.FunctionReturn;


/**
 * FyTest
 * 
 */
@Controller
@RequestMapping(value="${adminPath}/fyTest")
public class FyTestController extends BaseController {

	@Autowired
	FyTestService fyTestService;
	
	//查询整个数据表,分页,每页30行数据,展示
	@RequiresPermissions("fyTest:fyTestUser:view")  //注解,操作该功能需要有 "fyTest:fyTestUser:view"的权限 
	@RequestMapping(value={"/fyTestUsers/list"})	//一个用来处理请求地址映射的注解,运行这个功能时的url路径就会是".../fyTestUsers/list"(已验证)
	public String fyTestUserList(FyTestUser fyTestUser,HttpServletRequest request,HttpServletResponse response,Model model){
		Page<FyTestUser> page = fyTestService.getFyTestPage(new Page<FyTestUser>(request,response),fyTestUser);//获取了表的数据
		model.addAttribute("page",page);			//将数据存储在 Model对象中,然后在视图层中使用该数据
		return"modules/fyTest/fyTest";				//跟前端页面返回有关系,表示进行完当前操作返回到哪个页面
	}

	
	//填写"新增信息"的页面
	@RequiresPermissions("fyTest:fyTestUser:edit")
	@RequestMapping(value={"/fyTestUsers/form"})
	public String fyTestUsersForm(FyTestUser fyTestUser, HttpServletRequest request, HttpServletResponse response, Model model){
		return "modules/fyTest/fyTestForm";
	}
	
	//"整体修改"的页面
		@RequestMapping(value={"/fyTestUsers/update"})
		public String fyTestUsersUpdate(FyTestUser fyTestUser, HttpServletRequest request, HttpServletResponse response, Model model){
			return "modules/fyTest/fyTestUpdate";
		}
	
	//功能,新增信息
	@RequiresPermissions("fyTest:fyTestUser:edit")
	@RequestMapping(value={"/fyTestUsers/save"})
	public String fyTestUsersSave(FyTestUser fyTestUser, Model model,RedirectAttributes redirectAttributes){		
		try{
			FunctionReturn fr = fyTestService.saveFyTestUser(fyTestUser);		//1查重2插入新数据
			addMessage(redirectAttributes,fr.getReturnMsg());					//打印在Service层获取到的消息
		}catch(Exception ex){
			addMessage(redirectAttributes, fyTestUser.getName()+"["+fyTestUser.getTuid()+"]添加新数据失败");
			logger.debug(Exceptions.getStackTraceAsString(ex));
			ex.printStackTrace();
		}
		return "redirect:"+adminPath+"/fyTest/fyTestUsers/list";

	}
	
	
	//导出表单数据
	@RequiresPermissions("fyTest:fyTestUser:view")
	@RequestMapping(value = "/fyTestUsers/export",method=RequestMethod.POST)
	public String exportfile(FyTestUser fyTestUser,HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes){
		try{
			String fileName="FyTest"+DateUtils.getDate("yyyyMMDDHHmmss")+".xlsx";
			List<FyTestUser>exportList= fyTestService.getFyTestUserExportList(fyTestUser);
			new ExportExcel("fyTest", FyTestUser.class).setDataList(exportList).write(response, fileName).dispose();			return null;
		}catch (Exception e){
			addMessage(redirectAttributes,"导出信息失败!失败信息:"+e.getMessage());
		}
		return "redirect:"+adminPath+"/fyTest/fyTestUsers/list";
	}
	
	
	//修改状态
	@RequiresPermissions("fyTest:fyTestUser:edit")
	@RequestMapping(value = "/fyTestUsers/updateStatus")
	public String fyTestUserUpdateStatus(FyTestUser fyTestUser, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes){
		try{
			FunctionReturn fr = fyTestService.updateFyTestUserForStatus(fyTestUser);
			addMessage(redirectAttributes,fr.getReturnMsg());
		}catch(Exception ex){
			addMessage(redirectAttributes,"状态更新失败");
			logger.debug(Exceptions.getStackTraceAsString(ex));
			ex.printStackTrace();
		}
		return "redirect:"+adminPath+"/fyTest/fyTestUsers/list";
		
	}

	
	//修改整体
	@RequiresPermissions("fyTest:fyTestUser:edit")
	@RequestMapping(value = "/fyTestUsers/updateAll")
	public String fyTestUserUpdateAll(FyTestUser fyTestUser, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes){
		try{
			FunctionReturn fr = fyTestService.updateFyTestUserForAll(fyTestUser);
			addMessage(redirectAttributes,fr.getReturnMsg());
		}catch(Exception ex){
			addMessage(redirectAttributes,"更新失败");
			logger.debug(Exceptions.getStackTraceAsString(ex));
			ex.printStackTrace();
		}
		return "redirect:"+adminPath+"/fyTest/fyTestUsers/list";
		
	}
	
	
	//删除数据
		@RequiresPermissions("fyTest:fyTestUser:edit")
		@RequestMapping(value = "/fyTestUsers/delete")
		public String fyTestUserRemove(FyTestUser fyTestUser, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes){
			try{
				FunctionReturn fr = fyTestService.deleteFyTestUser(fyTestUser);
				addMessage(redirectAttributes,fr.getReturnMsg());
			}catch(Exception ex){
				addMessage(redirectAttributes,"删除失败");
				logger.debug(Exceptions.getStackTraceAsString(ex));
				ex.printStackTrace();
			}
			return "redirect:"+adminPath+"/fyTest/fyTestUsers/list";
			
		}
}

        数据载体:

        fyTestUser.java:

package 不.要.在.意.fyTest.entity;

//import导入本类中会引用的其他类
import java.util.Date;					//时间类				

import 不.要.在.意.DataEntity;			//老大定义的类,操作数据用
import 不.要.在.意.ExcelField;			//老大定义的注解类,在此处用来设置导出exl文件时各数据在文件中的一些排版属性等

public class FyTestUser extends DataEntity<FyTestUser> {
	
	private String tuid;				//工号
	private String name;				//姓名
	private String sex;					//性别
	private String departments;			//部门
	private int status;					//状态
	private String telephone;			//电话号
	private Date createTime;			//创建时间
	private Date amendTime;			    //修改时间

	
	@ExcelField(title="工号", align=2, sort=5)
	//返回tuid的字符串
	public String getTuid() {
		return tuid;
	}
	//存储tuid的值
	public void setTuid(String tuid) {
		this.tuid = tuid;
	}
	
	//其他同上
	@ExcelField(title="姓名", align=2, sort=10)
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	
	@ExcelField(title="性别", align=2, sort=15)
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	
	
	@ExcelField(title="部门", align=2, sort=20)
	public String getDepartments() {
		return departments;
	}
	public void setDepartments(String departments) {
		this.departments = departments;
	}
	
	
	@ExcelField(title="状态", align=2, sort=25)
	public int getStatus() {
		return status;
	}
	public void setStatus(int status) {
		this.status = status;
	}
	
	
	@ExcelField(title="电话号", align=2, sort=30)
	public String getTelephone() {
		return telephone;
	}
	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}
	
	
	@ExcelField(title="创建时间", align=2, sort=35)
	public Date getCreateTime() {
		return createTime;
	}
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	
	@ExcelField(title="创建时间", align=2, sort=40)
	public Date getAmendTime() {
		return amendTime;
	}
	public void setAmendTime(Date amendTime) {
		this.amendTime = amendTime;
	}
	
}

        前端:

        fyTest.jsp:

<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
<html>
  <head>
  	<title>ftTest</title>

    <meta name="decorator" content="default"/>
	<script type="text/javascript">

		<!-- function...,新建函数对象-->
		function loading(){
			loading('正在查询,请稍等...');
		}

		
		function page (n,s){
			$("#pageNo").val(n);				
			$("#pageSize").val(s);
			$("#searchForm").attr("action","${ctx}/fyTest/fyTestUsers/list");
			$("#searchForm").submit();
        	return false;
		}


		<!-- function(...){...},直接使用括号()将函数转换为表达式,实现在定义的时候直接调用它 -->		
		$(document).ready(function() {
        	$("#btnSubmit").click(function(){
				$("#searchForm").attr("action","${ctx}/fyTest/fyTestUsers/list");
				top.$('.jbox-body .jbox-icon').css('top','55px');
			});

			
        	$("#btnExport").click(function(){
				top.$.jBox.confirm("确认要导出数据吗?","系统提示",function(v,h,f){
					if(v=="ok"){	
						$("#searchForm").attr("action","${ctx}/fyTest/fyTestUsers/export");
						$("#searchForm").submit();
					}
				},{buttonsFocus:1});
				top.$('.jbox-body .jbox-icon').css('top','55px');
			});
			
				
        })
        
        				
	</script>
  </head>
  
  <body>
    	<ul class="nav nav-tabs">
		<li class="active"><a href="${ctx}/fyTest/fyTestUsers/list">fyTest</a></li>
		
		<shiro:hasPermission name="fyTest:fyTestUser:edit">
			<li><a href="${ctx}/fyTest/fyTestUsers/form">添加数据</a></li>
		</shiro:hasPermission>
		
	</ul>	
	
	<form:form id="searchForm" modelAttribute="financeOrder" action="${ctx}/fyTest/fyTestUsers/list" method="post" class="breadcrumb form-search">
		<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}" />
		<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}" />
		<ul class="ul-form">
			
			<li><label>姓名:</label>
				<input name="name" id="name" type="text" maxlength="100" class="input-large" value="${fyTestUser.name}"/>
			</li>
			
			<li><label>工号:</label>
				<input name="tuid" id="tuid" type="text" maxlength="100" class="input-large" value="${fyTestUser.tuid}"/>
			</li>
			
			<li class="btns">
				<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询" onclick="loading()"/>
				<input id="btnExport" class="btn btn-primary" type="button" value="导出数据"/>	
			</li>
			<li class="clearfix"></li>
		</ul>
	</form:form>
	
	<sys:message content="${message}" />
	
	<!-- 表格的排版布局 -->
	<table id="contentTable"
		class="table table-striped table-bordered table-condensed">
		<thead>
			<tr>
				<th>*</th>
				<th>工号</th>
				<th>姓名</th>
				<th>性别</th>
				<th>部门</th>
				<th>状态</th>
				<th>电话</th>
				<th>创建时间</th>
				<th>修改时间</th>
			</tr>
		</thead>
		<tbody>
			<c:forEach items="${page.list}" var="fyTestUser"  varStatus="status">
				<!-- 从entity取数据 -->
				<tr>
					<td>${status.index + 1}</td> 
					<td>${fyTestUser.tuid}</td>
					<td>${fyTestUser.name}</td>
					<td>${fyTestUser.sex}</td>
					<td>${fyTestUser.departments}</td>
					<td>			
						<c:if test="${fyTestUser.status ==1}">工作中</c:if>
						<c:if test="${fyTestUser.status ==2}">放假中</c:if>
						<c:if test="${fyTestUser.status ==3}">已离职</c:if>			
						<shiro:hasPermission name="fyTest:fyTestUser:edit">
							<a href="${ctx}/fyTest/fyTestUsers/updateStatus?tuid=${fyTestUser.tuid}&status=1"
							onclick="return confirmx('确认更改 <b>${fyTestUser.name}[${fyTestUser.tuid}]</b>的状态吗?', this.href)">上班</a>
						</shiro:hasPermission>
						<shiro:hasPermission name="fyTest:fyTestUser:edit">
							<a href="${ctx}/fyTest/fyTestUsers/updateStatus?tuid=${fyTestUser.tuid}&status=2"
							onclick="return confirmx('确认更改 <b>${fyTestUser.name}[${fyTestUser.tuid}]</b>的状态吗?', this.href)">下班</a>
						</shiro:hasPermission>
					</td>					
					<td>${fyTestUser.telephone}</td>
					<td><fmt:formatDate value="${fyTestUser.createTime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
					<td><fmt:formatDate value="${fyTestUser.amendTime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
					<td>
						<shiro:hasPermission name="fyTest:fyTestUser:edit">
							<a href="${ctx}/fyTest/fyTestUsers/update?tuid=${fyTestUser.tuid}"
							>整体修改 </a>
						</shiro:hasPermission>
						<shiro:hasPermission name="fyTest:fyTestUser:edit">
							<a href="${ctx}/fyTest/fyTestUsers/delete?tuid=${fyTestUser.tuid}"
							onclick="return confirmx('确认删除 <b>${fyTestUser.name}[${fyTestUser.tuid}]</b>的信息吗?(此次删除数据无法复原)', this.href)">删除 </a>
						</shiro:hasPermission>
					</td>
				</tr>
			</c:forEach>
		</tbody>
		
	</table>
	<div class="pagination">${page}</div>
  </body>
</html>

         fyTestForm.jsp:

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
<html>
<head>
	<title>新增测试数据</title>
	<meta name="decorator" content="default"/>
	<script type="text/javascript">
		$(document).ready(function() {
			console.log($("#tuid").val());
			var type = $("#type").val();
			if(type == "1"){
				/* $('#tuid').attr("readonly","readonly") */
				$('#name').attr("readonly","readonly")
				$('#sex').attr("readonly","readonly")
				$('#telephone').attr("readonly","readonly")
			}
		
			//$("#value").focus();
			$("#inputForm").validate({
				rules: {
                    name: {
                    	required: true    	                                 
                    },
                    status: {
                    	required: true    	                                 
                    },
                    telephone: {
                    	required: true    	                                 
                    }
                    
			    },
			     messages: {
			      	tuid: {
	                    required: "请输入正确的工号",
	                }
			    }, 
				submitHandler: function(form){
					loading('正在提交,请稍等...');
					form.submit();
				},
				errorContainer: "#messageBox",
				errorPlacement: function(error, element) {
					$("#messageBox").text("输入有误,请更正.");
					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
						error.appendTo(element.parent().parent());
					} else {
						error.insertAfter(element);
					}
				}
			});
	});
			
</script>
</head>
<body>
	<ul class="nav nav-tabs">
		<li><a href="${ctx}/fyTest/fyTestUsers/list">fyTest</a></li>
		<li class="active"><a href="${ctx}/fyTest/fyTestUsers/form">添加数据</a></li>
	</ul><br/>
	<form:form id="inputForm" modelAttribute="fyTestUser" action="${ctx}/fyTest/fyTestUsers/save" method="post" class="form-horizontal">
		
		<input id="type" type="hidden" value="${type}"/>
		
		<sys:message content="${message}"/>	
		<div class="control-group">
			<label class="control-label">工号:</label>
			<div class="controls">
			   	<form:input path="tuid"  htmlEscape="false" maxlength="200" />
			</div>
		</div>
		<div class="control-group">
			<label class="control-label">姓名:</label>
			<div class="controls">
				<form:input path="name" htmlEscape="false" maxlength="100" class="required "/>
			</div>
		</div>
		<div class="control-group">
			<label class="control-label">性别:</label>
			<div class="controls">
				<form:input path="sex" htmlEscape="false" maxlength="10" />			
			</div>
		</div>	
		<div class="control-group">
			<label class="control-label">部门:</label>
			<div class="controls">
				<form:input path="departments" htmlEscape="false" maxlength="20" class="required "/>			
			</div>
		</div>
		
		<div class="control-group">
			<label class="control-label">状态:</label>
			<div class="controls" style="">
				<select name="status"}>	
					<option disabled selected>请选择</option>
					<option value="1">工作中</option>
					<option value="2">休假中</option>
					<option value="3">已离职</option>				
				</select>
			</div>
		</div>
		
		<div class="control-group">
			<label class="control-label">电话号码:</label>
			<div class="controls">
				<form:input path="telephone" htmlEscape="false" maxlength="20" class="required "/>			
			</div>
		</div>
						
		<div class="form-actions">
			<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
			<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
		</div>	
		</form:form>	
</body>
</html>

         fyTestUpdate.jsp:

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
<html>
<head>
	<title>整体修改</title>
	<meta name="decorator" content="default"/>
	<script type="text/javascript">
		$(document).ready(function() {
		
			var type = $("#type").val();
			if(type == "1"){
				$('#tuid').attr("readonly","readonly")
				$('#name').attr("readonly","readonly")
				$('#sex').attr("readonly","readonly")
				$('#telephone').attr("readonly","readonly")
			}
		
			//$("#value").focus();
			$("#updateForm").validate({
				rules: {
			      	tuid: {
                    	required: true   	//要求输入不能为空                                 
                    },
                    name: {
                    	required: true    	                                 
                    },
                    status: {
                    	required: true    	                                 
                    },
                    telephone: {
                    	required: true    	                                 
                    }
                    
			    },
			    messages: {
			      	tuid: {
	                    required: "请输入正确的工号",
	                    rangelength: "请输入正确的工号"
	                }
			    },
				submitHandler: function(form){
					loading('正在提交,请稍等...');
					form.submit();
				},
				errorContainer: "#messageBox",
				errorPlacement: function(error, element) {
					$("#messageBox").text("输入有误,请更正.");
					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
						error.appendTo(element.parent().parent());
					} else {
						error.insertAfter(element);
					}
				}
			});
	});
			
</script>
</head>
<body>
	<ul class="nav nav-tabs">
		<li><a href="${ctx}/fyTest/fyTestUsers/list">fyTest</a></li>
		<li class="active"><a href="${ctx}/fyTest/fyTestUsers/update">修改数据</a></li>
	</ul><br/>
	<form:form id="updateForm" modelAttribute="fyTestUser" action="${ctx}/fyTest/fyTestUsers/updateAll" method="post" class="form-horizontal">
		
		<input id="type" type="hidden" value="${type}"/>
		
		<sys:message content="${message}"/>	
		<form:hidden path="tuid" id="tuid"/>	
		<div class="control-group">
			<label class="control-label">工号:</label>
			<div class="controls">
			   	${fyTestUser.tuid}
			</div>
		</div>
		<div class="control-group">
			<label class="control-label">姓名:</label>
			<div class="controls">
				<form:input path="name" htmlEscape="false" maxlength="100" class="required "/>
			</div>
		</div>
		<div class="control-group">
			<label class="control-label">性别:</label>
			<div class="controls">
				<form:input path="sex" htmlEscape="false" maxlength="10" />			
			</div>
		</div>	
		<div class="control-group">
			<label class="control-label">部门:</label>
			<div class="controls">
				<form:input path="departments" htmlEscape="false" maxlength="20" class="required "/>			
			</div>
		</div>
		
		<div class="control-group">
			<label class="control-label">状态:</label>
			<div class="controls" style="">
				<select name="status"}>	
					<option disabled selected>请选择</option>
					<option value="1">工作中</option>
					<option value="2">休假中</option>
					<option value="3">已离职</option>
				
				</select>
			</div>
		</div>
		
		<div class="control-group">
			<label class="control-label">电话号码:</label>
			<div class="controls">
				<form:input path="telephone" htmlEscape="false" maxlength="20" class="required "/>			
			</div>
		</div>
						
		<div class="form-actions">
			<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
			<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
		</div>	
		</form:form>	
</body>
</html>

 以上,完工(ゝω・)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值