//前端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. Python17个常用内置模块总结

    Python17个常用内置模块总结 1.getpass 2.os 3.sys 4.subprocess 5.hashlib 6.json 7.pickle 8.shutil 9.time 10.dat ...

  2. UBI mkfs.ubifs 参数记录

    NAND 硬件结构如下: 脚本如下 sudo mkfs.ubifs -q -r rootfs_iproute -m 4096 -e 248KiB -c 3840 -o ubifs.img -F ech ...

  3. pytorch torch.backends.cudnn设置作用

    cuDNN使用非确定性算法,并且可以使用torch.backends.cudnn.enabled = False来进行禁用 如果设置为torch.backends.cudnn.enabled =Tru ...

  4. Qt请求http地址数据

    QNetworkAccessManager *manager = new QNetworkAccessManager(this);; QNetworkRequest network_request; ...

  5. 关于将汉语拼音字母“ü”改成“v”的设想和建议

    http://bbs.tianya.cn/post-free-1667253-1.shtml?_t=t -- 徐州工业职业技术学院 孙生强 <汉语拼音方案>为中国人的语言文字学习带来极大方 ...

  6. [LeetCode] 354. Russian Doll Envelopes 俄罗斯套娃信封

    You have a number of envelopes with widths and heights given as a pair of integers (w, h). One envel ...

  7. [LeetCode] 686. Repeated String Match 重复字符串匹配

    Given two strings A and B, find the minimum number of times A has to be repeated such that B is a su ...

  8. Kubernetes 集群日志管理 Elasticsearch + fluentd(二十)

    目录 一.安装部署 Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理.这是一个 Elasticsearch.Fluentd 和 Kibana 的组合.Elas ...

  9. 关于Excel 2016 总要点击两次才能打开的解决方法

    1.快捷键:win+r,输入:regedit2.定位到如下项目“HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\command”:3.编辑原有的内容,在最后添加 ...

  10. 【VS开发】 Windows平台下管道的使用

    转载地址: 管道分类: 1. 匿名管道: 只能用于相关进程(如父子进程,兄弟进程),并在他们之间建立内存区域,进程终止后,匿名管道也就消失了. 通常用于:重定向子进程的标准输入输出,以便和父进程交换数 ...