1、在进行修改或其他操作以后,在springMVC中不能通过转发跳转到主界面,而应该通过重定向!因为转发会将前一个请求信息携带过去,会影响第二次方法参数的执行!!
2、在mysql中:实际上CURRENT_TIMESTAMP时间戳默认值只能设置一个或者不设置,不能有两个以上!
- ·时间戳类型:
(1)当字段定义为timestamp,表示该字段在插入和更新时都不会自动设置为当前时间。
(2)当字段定义为timestamp DEFAULT CURRENT_TIMESTAMP,表示该字段仅在插入且未指定值时被赋予当前时间,再更新时且未指定值时不做修改。
(3)当字段定义为timestamp ON UPDATE CURRENT_TIMESTAMP,表示该字段在插入且未指定值时被赋值为"0000-00-00 00:00:00",在更新且未指定值时更新为当前时间。
(4)当字段定义为timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,表示该字段在插入或更新时未指定值,则被赋值为当前时间
- ·时间戳类型使用建议
(1)在只关心数据最后更新时间的情况下,建议将时间戳列定义为TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
(2)在关心创建时间和更新时间的情况下,建议将更新时间设置为时间戳字段,将创建时间定义为DAETIME 或 TIMESTAMP DEFAULT '0000-00-00 00:00:00',并在插入记录时显式指定创建时间;
3、从mysql数据库拿timestamp类型的数据,如果数据为'0000-00-00 00:00:00',则底层jdbc不支持会报错,解决方法只需要修改url即可:
- jdbc.url= jdbc:mysql://localhost:3306/crm?useUnicode=true&characterEncoding=utf-8&relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull
4、mysql数据库分页:
提供了limit函数-LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数。例如:
- select * from table where... limit 3,5 返回4-8行数据
5、如何描述查询数据库某条字段为null时的sql语句:
- 在mysql中,查询某字段为null时候,不能使用=null,而是is null,不为空则是is not null!
6、当使用spring注册多个包下的类时候,在xml配置文件中使用组件扫描或者其他方式时,不同包名之间用逗号隔开即可!
7、在ssm项目中前端url的不同形式:
(1)js:window.location.href = 'customerUI.mvc';
(2)ajax:url : 'cs/updateCustomer.mvc',
(3)<a>标签:href="cs/insertCustomerUI.mvc"
(4)<form>表单:action="cs/insertCustomerUI.mvc"
8、当使用mybatis反向工程生成的sql语句适合,切记:criteria.andEmailEqualTo(linkMan.getEmail());
- ·一定要给其赋值,如果值为null,那么就会报错,这是由于反向工程的源代码所写的异常判断语句!所有要支持输入为null,需要我们自定义sql语句
9、测试一下是否在SpringMVC的url中需要添加'/'才可以匹配?
- ·经测试,不一定需要
10、切记:发送ajax请求时候,如果没反应,那么极有可能是你没有引入头文件!!
11、js校验:数字/邮箱/手机
例如校验输入的是否为纯数字:
$(function(){
$('#btn').click(function(){
var val =$('#not_digit').val();
var patrn = /^[0-9]*$/;
if (!patrn.test(val)) {
alert('包含不是数字的字符');
return;
}
});
})
12、发送ajax请求到SpringMVC,如果处理请求后返回的json串中包含中文,当在前端界面显示中文出现乱码,解决方法很简单,只需要在SpirngMVC相对应的controller方法中添加如下代码即可:
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
- ajax:
$.ajax({
type : 'post',
url : 'login/check.mvc',
data : data,
cache : false,
sync : true,
success : function(msg) {
var json = JSON.parse(msg);
if (0 == json.status) {
alert("工号或密码错误");
} else {
//alert("1");
$("#formlogin").submit();
}
},
error : function() {
alert("请求失败!");
}
});
- springmvc:
RequestMapping("/updatepassword")
public void updatePassword(HttpServletRequest request,HttpServletResponse response,LogIn login) throws IOException{
JSONObject json = new JSONObject();
int i = empLogInService.updatePassword(login);
if(i == 1){
json.put("status", "1");
json.put("msg", "更新成功!");
}
else{
json.put("status", "0");
}
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
response.getWriter().write(json.toString());
}
13、 .SpringMVC中,ajax传值到后台,如何再从后台直接重定向到另一个界面?
- 结论:ajax请求到SpringMVC中无法直接进行转发!
- 解决思路:通过返回json串,在ajax中进行判断,将转发交给ajax间接进行
- 例如:登陆认证->若初始密码123456->则跳转修改密码界面
- ajax:
function mylogin() {
var employeeId = $("#employeeId").val();
var emmPassword = $("#emmPassword").val();
if ("" == employeeId || undefined == employeeId) {
alert("工号不能为空");
return;
}
if ("" == emmPassword || undefined == emmPassword) {
alert("密码不能为空");
return;
}
var data = {};
data.employeeId = employeeId;
data.emmPassword = emmPassword;
$.ajax({
type : 'post',
url : 'login/check.mvc',
data : data,
cache : false,
sync : true,
success : function(msg) {
var json = JSON.parse(msg);
if (0 == json.status) {
alert("工号或密码错误");
} else if(2 == json.status){
//转发到修改密码界面
window.location.href = "login/toUpdate.mvc";
}else {
//alert("1");
//跳转到主界面
$("#formlogin").submit();
}
},
error : function() {
alert("请求失败!");
}
});
- springmvc:
/*
* 登陆验证
*/
@RequestMapping("/check")
public void loginCheck(HttpServletRequest request,HttpServletResponse response,LogIn login) throws Exception{
List<LogIn> list = empLogInService.findEmpFromLogin(login);
JSONObject json = new JSONObject();
if(list.size() > 0){
//修改初始密码
if(login.getEmmPassword().equals("123456")){
json.put("status", "2");
}
else{
//保存用户信息到session中
Employee employee = employeeService.findEmployee(list.get(0).getEmployeeId());
HttpSession session = request.getSession();
session.setAttribute("SessionEmployee", employee);
json.put("status", "1");
}
}
else{
json.put("status", "0");
}
response.getWriter().write(json.toString());
}