javabean根据属性名称获取对应的的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。
4、属性类型是boolean,那么JavaBean规范中规定boolean的getter/setter 为isXXX/setXXX,包装类Boolean的getter/setter 为getXXX/setXXX,其中XXX为变量名(IDE生成代码默认就是这种格式)。
当编写代码出现不规范命名,将boolean 变量声明为isXXX时,为了保证序列化与反序列化,需将isXXX/setXXX改为isIsXXX/setIsXXX,然而IDE并不会为我们做这些。

      所以javabean中尽量不要是使用is开头命名。

public class JavaBeansUtil {
	
	/**
	 * 根据属性名称和java类型,获取对应的getter方法名
	 * @param property
	 * @param javaType
	 * @return
	 */
	public static String getGetterMethodName(String property, String javaType) {
        StringBuilder sb = new StringBuilder();
        sb.append(property);
        if (Character.isLowerCase(sb.charAt(0))) {
            if (sb.length() == 1 || !Character.isUpperCase(sb.charAt(1))) {
                sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
            }
        }
        if ("boolean".equals(javaType)) {
            sb.insert(0, "is"); 
        } else {
            sb.insert(0, "get"); 
        }
        return sb.toString();
    }
	/**
	 * 根据属性名称获取对应的setter方法名称
	 * @param property
	 * @return
	 */
	public static String getSetterMethodName(String property) {
        StringBuilder sb = new StringBuilder();
        sb.append(property);
        if (Character.isLowerCase(sb.charAt(0))) {
            if (sb.length() == 1 || !Character.isUpperCase(sb.charAt(1))) {
                sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
            }
        }
        sb.insert(0, "set"); 
        return sb.toString();
    }
	
}


好的,我来回答你的问题。 首先,按照JavaBean的编写规范,User.java应该长这样: ```java public class User { private int userid; private String username; private String gender; private int age; private boolean member; public int getUserid() { return userid; } public void setUserid(int userid) { this.userid = userid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public boolean isMember() { return member; } public void setMember(boolean member) { this.member = member; } } ``` 接下来,我们在JSP页面中引入User对象,并利用标签语句输出所有属性值: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>User信息</title> </head> <body> <% User user = new User(); user.setUserid(1); user.setUsername("张三"); user.setGender("男"); user.setAge(25); user.setMember(true); pageContext.setAttribute("user", user); %> <h1>User信息</h1> <ul> <li>用户序号:${user.userid}</li> <li>用户:${user.username}</li> <li>性别:${user.gender}</li> <li>年龄:${user.age}</li> <li>是否会员:${user.member}</li> </ul> </body> </html> ``` 在JSP页面中,我们首先创建一个User对象,并设置所有属性值。然后,我们将User对象存储在pageContext中,以便在页面中使用。最后,我们使用标签语句${}输出所有属性值。 希望我的回答能够帮到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值