//前端ajax代码

 1             var oldpassword = $('#old_password').val();
var password = $('#L_pass').val();
var usercode = $('#usercode').val();
var username=$('#username').val();
var user = {usercode:usercode,password:password,oldpassword:oldpassword,username:'admin'};
$.ajax({
url:"/CMS/User/UserEditPWD",
type:"post",
data:user, success:function(res){
if(res=='true'){
layer.alert("修改密码成功", {icon: 6},function () {
// 获得frame索引
window.parent.location.reload();
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
});
}else{
layer.msg('修改失败,请注意旧密码是否正确', {icon: 6});
}
}
});
return false
});

后端model代码 修改后

package com.supercontrol.cms.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint; import org.hibernate.annotations.GenericGenerator; import com.supercontrol.cms.controller.annotation.global.Global.LeiMode; @Entity
@Table(name="CMS_USER")
public class User { @Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
@LeiMode("ID")
private String id; @Column(length=32)
@LeiMode("用户编号")
private String usercode; @Column(length=32)
@LeiMode("用户名称")
private String username;
@LeiMode("旧用户密码")
private String oldpassword;
@Column(length=32)
@LeiMode("用户密码")
private String password; @Column(length=32)
@LeiMode("是否使用")
private String userUsed; @Column(length=32)
@LeiMode("用户部门")
private String userDepart; @Column(length=32)
@LeiMode("用户角色")
private String userRole; @Column(length=32)
@LeiMode("创建人")
private String userCreater; @Column(length=32)
@LeiMode("创建时间")
private String userCreatetime; @Column(length=32)
@LeiMode("更新人")
private String userUpdater; @Column(length=32)
@LeiMode("更新时间")
private String userUpdatetime;
@Column(length=32) public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsercode() { return usercode; }
public void setUsercode(String usercode) { this.usercode = usercode; }
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
public String getOldpassword() { return oldpassword; }
public void setOldpassword(String oldpassword) { this.oldpassword =oldpassword; }
public String getUserUsed() { return userUsed; }
public void setUserUsed(String userUsed) { this.userUsed = userUsed; }
public String getUserRole() { return userRole;}
public void setUserRole(String userRole) {
this.userRole = userRole;
}
public String getUserCreater() {
return userCreater;
}
public void setUserCreater(String userCreater) {
this.userCreater = userCreater;
}
public String getUserCreatetime() {
return userCreatetime;
} public void setUserCreatetime(String userCreatetime) {
this.userCreatetime = userCreatetime;
} public String getUserUpdater() {
return userUpdater;
} public void setUserUpdater(String userUpdater) {
this.userUpdater = userUpdater;
} public String getUserUpdatetime() {
return userUpdatetime;
} public void setUserUpdatetime(String userUpdatetime) {
this.userUpdatetime = userUpdatetime;
} public String getUserDepart() {
return userDepart;
} public void setUserDepart(String userDepart) {
this.userDepart = userDepart;
} }

修改前

@Column(length=32)
@LeiMode("旧用户密码")
private String oldpassword; //错误为不符合命名规范,声明参数全小写,方法只能第一个大写,其余不能使用驼峰命名法。
//getXxx,setXxx
public String getOldPassWord() { return oldpassword; }
public void setOldPassWord(String oldpassword) { this.oldpassword =oldpassword; }

[转]

最近的struts项目中遇到了这样的问题: 我的action中全局变量明明有getset方法,而且是自动生成的,但是在使用的时候,总是说找不到这个属性的getset方法,取不到从jsp传来 的值, 原因如下:变量名为:hDeptment,在自动生成getset方法为:setHDeptment,getHDeptment。下面是解释这个问题。

(1)JavaBean 类必须是一个公共类,并将其访问属性设置为 public  ,如: public class user{......}

(2)JavaBean 类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器

(3)一个javaBean类不应有公共实例变量,类变量都为private  ,如: private int id;
(4)属性应该通过一组存取方法(getXxx 和 setXxx)来访问,一般是IDE(Eclipse、JBuilder) 为属性生成getter/setter 方法

一般JavaBean属性以小写字母开头,驼峰命名格式,相应的 getter/setter 方法是 get/set 接上首字母大写的属性名。例如:属性名为userName,其对应的getter/setter 方法是 getUserName/setUserName。

但是,还有一些特殊情况:

1、如果属性名的第二个字母大写,那么该属性名直接用作 getter/setter 方法中 get/set 的后部分,就是说大小写不变。例如属性名为uName,方法是getuName/setuName。

2、如果前两个字母是大写(一般的专有名词和缩略词都会大写),也是属性名直接用作 getter/setter 方法中 get/set 的后部分。例如属性名为URL,方法是getURL/setURL。

3、如果首字母大写,也是属性名直接用作 getter/setter 方法中 get/set 的后部分。例如属性名为Name,方法是getName/setName,这种是最糟糕的情况,会找不到属性出错,因为默认的属性名是name。

所以在action的全局变量和JavaBean命名时应该注意符合以上命名规范。

附下表,看看吧:

————————————————————————————————————————————————————————

属性名/类型                    |                       getter 方法              |                    setter 方法

————————————|——————————————————|——————————————————————————
xcoordinate/Double     | public Double getXcoordinate()     | public void setXcoordinate(Double newValue)

————————————|——————————————————|——————————————————————————
xCoordinate/Double    | public Double getxCoordinate()     |public void setxCoordinate(Double newValue)

————————————|——————————————————|——————————————————————————
XCoordinate/Double    |public Double getXCoordinate()     | public void setXCoordinate(Double newValue)

————————————|——————————————————|——————————————————————————
Xcoordinate/Double     |不允许                                             |    不允许

————————————|——————————————————|——————————————————————————
分割线 ==========================================================================================

遇到一个异常:

javax.servlet.jsp.el.ELException: Unable to find a value for “isActive” in object of class “com.mycompany.domain.User” using operator “.”

使用“.”运算符,在User类的对象中,找不到isActive的值。

错误之处是,在JSP页面中我使用了:

           1
            
${user.isActive}

检查后发现没有写属性isActive的getter方法,那好,利用IntelliJ IDEA的自动生成代码功能,补上:

            1
2
3
public boolean isActive() {
return isActive;
}

运行,还是不对,问Erik,他说JavaBean命名规范里面规定,对于primitive和自定义类类型的属性property(小 写),getter和setter方法就是getProperty和setProperty(第一个字母变大写,前面再加get或set)。而对于类型为 boolean的属性,getter方法还可以写为isProperty(getProperty仍然可用),而且,如果属性的前两个字母是is(两个小 写),则getter与property完全同名(比如上面属性isActive的getter就是isActive())。

如果有个叫isIsActive的boolean类型属性,它的getter呢?答案还是isIsActive()。

所以,无论属性名是isActive还是active,getter只能是isActive()或者getActive(),JSP里只能用${user.active}来访问(注意大小写)。

最好的办法是不要以“is”作为开头来命名boolean类型的属性,以免混淆。

分割线====================================================================================

总之,javaBean中,要设置或获取某个property的值,就需要相应的get和set方法,对于boolean型,你可以用get/set方式来处理boolean,可以用is来代替get;

再者,一定要注意javaBean中的命名规范!

【JavaWEB SSH】jsp页面传值后台Controller 部分值绑定不上实体类的更多相关文章

  1. SpringMVC:前台jsp页面和后台传值

    前台jsp页面和后台传值的几种方式: 不用SpringMVC自带的标签 前台---->后台,通过表单传递数据(): 1.jsp页面代码如下,  modelattribute 有没有都行 < ...

  2. javaweb 与jsp页面的交互流程 (初次接触时写)

    javaweb 与jsp页面的交互流程 javaweb项目目录 1. javaweb项目的一般目录: 2. jsp 页面一般情况下放在 top(前台页面) back(后台页面) 3. 后台代码 放在s ...

  3. 向jsp页面传值时出现乱码

    在一个html页面中用表单向jsp页面传值: 这是html页面 <html> <head> <title>MyBeans.html</title> &l ...

  4. Springmvc controller和jsp页面传值对象类型问题和普通问题

    一:JSP-->controller 1.当jsp页面传递的值是对象类型时候比如User.name User.age的user对象传递,需要以下操作 jsp页面提供对应标签的value必须存在且 ...

  5. JSP 页面传值方法总结(转)

    原文地址:http://www.cnblogs.com/java-class/p/6358964.html 阅读目录 1. URL 链接后追加参数 2. Form 3. 设置 Cookie 4. 设置 ...

  6. JSP 页面传值方法总结

    JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧. 试着将各种方式总结下来,需要时可以进行权衡利弊选择最合适的方式. 1. URL 链接后追加参数 <a href=&quo ...

  7. JSP页面传值出现中文乱码的问题

    在接收值的jsp页面代码的body里添加: <%request.setCharacterEncoding("utf-8"); %>  //这里是设置utf-8为jsp页 ...

  8. JSP 页面传值

    使用session会话传值并重定向页面 //得到用户提交的值 String name = request.getParameter("username"); String pwd ...

  9. 【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】

    阅读目录 1. URL 链接后追加参数 2. Form 3. 设置 Cookie 4. 设置 Session JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧. 试着将各种方式总 ...

随机推荐

  1. rust猜数游戏代码

    use std::io; use rand::Rng; use std::cmp::Ordering; fn main() { println!("Guess the number!&quo ...

  2. 刷题记录:[BUUCTF 2018]Online Tool

    目录 刷题记录:[BUUCTF 2018]Online Tool 一.知识点 1.escapeshellarg和escapeshellcmd使用不当导致rce 刷题记录:[BUUCTF 2018]On ...

  3. 升级pip后,出现ImportError:cannot import name main

    升级pip后,出现ImportError错误,如下图: 解决方法: sudo gedit /usr/bin/pip 进去后修改为 from pip import __main__ if __name_ ...

  4. 使用PLSQL导入excel数据至oracle数据库

    https://blog.csdn.net/qq_42909551/article/details/82108754 https://jingyan.baidu.com/album/14bd256e2 ...

  5. filebeat获取nginx的access日志配置

    filebeat获取nginx的access日志配置 产生nginx日志的服务器即生产者服务器配置: 拿omp.chinasoft.com举例: .nginx.conf主配置文件添加日志格式 log_ ...

  6. 开发人员不得不知的MySQL索引和查询优化

    转载:https://blog.csdn.net/enmotech/article/details/88809822 本文主要总结了慢查询优化的过程中常用的以及不合理的操作,适合有 MySQL 基础的 ...

  7. TortoiseGit 查看单个文件日志显示全部提交记录了 解决办法

    右击文件,Show log.后来在界面上发现,“显示整个工程”的选项.才发现不能勾这个. 去掉勾选,就可以看到单个文件日志了,如果勾选"All Branches"就可以看到该文件在 ...

  8. [LeetCode] 543. Diameter of Binary Tree 二叉树的直径

    Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a b ...

  9. Dubbo版本升级

    一.背景 早期内部使用的是当当网fork的Dubbox,由于现在Dubbo又开始重新维护,而且阿里将其捐献给了Apache,并成为了Apache的顶级项目.因此dubbo版本升级到2.7.1势在必行. ...

  10. [转帖]中兴GoldenDB数据库开始了第一轮中信银行核心业务系统迁移落地

    中兴GoldenDB数据库开始了第一轮中信银行核心业务系统迁移落地 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https:// ...