`

JavaBean命名规范,不能以一个字母开头bPrivNum,可以bussPrivNum

阅读更多

今天做项目时候遇到个JavaBean的set()、get()方法取值取不到问题!!!!

 

###1.今后注意JavaBean或Model的命名尽量不要使用如下形式:

即:1)首字母别一个小写开头,2)结尾尽量不要加s复数

  private String privNum;//正确
  private String bPrivNum;//错误

  private Double[] selectMoney;//正确
  private Double[] selectMoneys;//错误

 

 

报如下错误:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception
org.apache.jasper.JasperException: An exception occurred processing JSP page 
/jsp/phone/login/frame/frameLeft.jsp at line 97

94:
95:
96: <c:forEach items="${firstList1}" var="firstMenu">
97: ${firstMenu.bPrivName}
98: </c:forEach>
99: <c:forEach items="${secondList1}" var="secondMenu">
100: ${secondMenu.bPrivName}

 root cause
javax.el.PropertyNotFoundException: Property 'bPrivName' not found on type 
com.hanpeng.base.phone.model.TBussinessPriv
    javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
    javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
    javax.el.BeanELResolver.property(BeanELResolver.java:279)
    javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
    javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)

 ###大概意思为:el表达式没法通过getXXX()找打TbussinessPriv中的bPrivName属性

 

一、总结

总结如下:EL表达式调用BeanUtils.getProperty(bean, name);来获得对象属性,分析源码这个类默认将你javaBean

的属性,首字母大写并且前面加上set、get,例如privNum-->setPrivNum、getPrivNum。

但是如果你属性为bPrivNum-->setBPrivNum、getBPrivNum,你通过EL表达式${test.bPrivNum}就会报错!!!


二、如何避免

1.JavaBean命名时避免出现bPrivNum这样的名字,1)可以为privNum。2)可以为BPrivNum。

public class TBussinessPriv extends BaseModel{

	private String privNum;
	//private String BPrivNum; 也正确
	//private String bPrivNum; 错误

	public String getPrivNum() {
	
		return privNum;
	}

	public void setPrivNum(String privNum) {
	
		this.privNum = privNum;
	} 
}
 

2.非要使用bPrivNum命名,EL表达式得值时,人为改为BPrivNum,不能更JavaBean中的bPrivNum一样

public class TBussinessPriv extends BaseModel{

	private String bPrivNum;

	public String getbPrivNum() {
	
		return bPrivNum;
	}

	public void setbPrivNum(String bPrivNum) {
	
		this.bPrivNum = bPrivNum;
	}
}
 
<c:if test="${firstList!=null}">
<c:forEach items="${firstList}" var="firstMenu">
<h1 id="m${firstMenu.BPrivNum}" 
  onClick="SwitchMenu('sub${firstMenu.BPrivNum}','m${firstMenu.BPrivNum}')" class="menu">
<ol class="left11">
${firstMenu.BPrivName}
</ol>
</h1>
<ul class="submenu" id="sub${firstMenu.BPrivNum}" >
<c:forEach items="${secondList}" var="secondMenu">
<c:if test="${firstMenu.BPrivNum==secondMenu.BMenuId1}">
<li><a href="${secondMenu.BPrivUrl}" target="main">
<span><img src="${secondMenu.BPicUrl}" width="26" height="27" align="middle"/></span>
${secondMenu.BPrivName}</a></li><br/>
</c:if>
</c:forEach>
</ul>
</c:forEach>
</c:if>
 

 

分享到:
评论

相关推荐

    java 基础之JavaBean属性命名规范问题.docx

    JavaBean属性的命名规范是Java开发中不可忽视的一个细节。正确的命名不仅能够提升代码质量,还能有效避免潜在的问题,从而提高项目的整体性能和可维护性。因此,在实际开发中,开发者应当重视并遵循这些规范,确保...

    java 基础之JavaBean属性命名规范问题

    JavaBean 是一种特殊的 Java 类,它遵循特定的命名规范,以便于其他 Java 类可以正确地访问和操作它的属性。下面我们将详细介绍 JavaBean 属性命名规范问题。 一、JavaBean 属性命名规范 JavaBean 的属性命名规范...

    java命名规范以及注释规范

    - 类名和接口名由一个或多个单词组成,每个单词的首字母大写,如`StringBuffer`, `IndexOptimizer`, `WebDbReader`。 - 接口名称可以使用形容词词缀,如`Runnable`, `Comparable`。 - 类名通常使用名词或名词短语...

    javabean规范

    JavaBean 是Java编程中的一种惯用模式,它并不是一种严格的语法规范,而是一种设计标准,目的是提高代码的可重用性和可读性。JavaBean 主要用于构建Java应用程序中的组件,尤其是在用户界面和数据绑定中。它的一些...

    Java 开发命名规范

    * 参照 java 驼峰命名法,首字母以小写开头,每个单词首字母大写(第一个单词除外)。 例如,一个变量名可以为 myFirstName。 四、 Dao 层命名规范 Dao 层是 Java 项目中负责数据库访问的层次。Dao 层的命名规则...

    JavaBean属性命名规范问题分析

    Java Bean属性命名规范问题分析

    首字母大写的json串转为javabean实例

    在Java编程中,将JSON字符串转换为JavaBean实例是一个常见的任务,特别是在处理Web服务或API交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而JavaBean是Java中的一种对象模型,用于封装...

    jsp调用javabean的问题

    4. **错误的JavaBean命名规范**:JavaBean应遵循Java的命名规范,即属性名称首字母小写,对应的getter和setter方法首字母大写。 5. **线程安全问题**:如果JavaBean在session或application作用域中,而它不是线程...

    JavaBean开发用户注册页面.pdf

    JavaBean开发规范可以确保JavaBean的可重用性、可维护性和可扩展性。 2. JSP与JavaBean之间的数据传输 JavaBean开发用户注册页面需要使用JSP与JavaBean之间的数据传输,通过JSP页面将用户输入的数据传递给JavaBean...

    项目命名规则

    类名通常以大写字母开头,多单词时每个单词的首字母都大写,如`StudentInfo`。接口名则以大写字母"I"开头,如`IStudentInfo`。对于接口的实现类,需要去掉接口名称首字母"I"并加上"Impl"作为后缀,如`...

    javabean一个简单的例子,可直接用

    JavaBean是一种特殊的Java类,它遵循特定的规范,主要用于封装数据和业务逻辑,方便在Java应用程序或Web应用中重用。在JavaBean中,通常有公有的属性(getter和setter方法)来存储和访问数据,以及可能包含一些业务...

    JAVABEAN

    JavaBean是一种特殊的Java类,它是Java编程语言中的一个核心概念,尤其在开发企业级应用程序时极为常见。JavaBean遵循特定的规范,使它们能够被其他Java应用或开发工具(如IDEs)识别、可视化和操作。JavaBean的主要...

    javaBean实验报告.doc

    - JavaBean需是公开的类,且有一个无参数的构造器,以便于在运行时实例化。 - 属性的命名遵循驼峰命名法,如`username`和`password`。 - 提供getter和setter方法来访问和修改属性值。 2. **JSP中使用JavaBean**...

    JavaBean示例

    JavaBean是Java编程语言中的一种特定类,遵循特定的规范,用于封装数据并提供属性访问。这个"JavaBean示例"旨在帮助初学者理解和使用JavaBean。JavaBean主要用于构建Java应用程序的可重用组件,特别是在JavaServer ...

    一个servlet,javabean。的例子

    Servlet是一种Java编程语言的接口,用于扩展服务器的功能,而JavaBean则是一种符合特定规范的Java类,通常用作组件,可以在多个环境中重用。 Servlet主要用在服务器端,它扩展了Web服务器的能力,允许我们处理HTTP...

    JavaBean讲解(上)

    JavaBean是Java编程语言中的一种特定类,它遵循一套特定的规范,主要用于封装数据和提供对象间的交互。在Java世界里,JavaBean被广泛应用于构建组件、MVC框架以及持久化层等领域。本节我们将深入探讨JavaBean的概念...

    javabean(DB)

    - **命名规范**:JavaBean的类名通常采用驼峰式命名,例如`UserBean`,以表明它是一个JavaBean。 - **公共无参构造器**:为了方便实例化,JavaBean应提供一个公共的无参数构造器。 - **属性**:JavaBean封装的...

    SqlToJavaBean_javabean_根据表结构生成javabean_生成javabean_

    在Java开发中,JavaBean是一种遵循特定规范的Java类,通常用于封装数据并提供相应的getter和setter方法。在数据库操作中,将SQL查询结果映射到Java对象是常见的需求,这时JavaBean的作用就显现出来了。...

    JAVABEAN方法实例

    4. 类名通常以大写字母开头,遵循驼峰命名法,反映出它封装的数据。 在这个实验中,JavaBean可能包含一个或两个字符串属性,分别用于存储第一个和第二个字符串。例如: ```java public class StringSearchBean { ...

    使用JSP、JavaBean和Servlet实现一个简单的留言板设计.zip

    在本项目中,我们主要探讨如何使用JSP(JavaServer Pages)、JavaBean和Servlet技术来构建一个简单的在线留言板系统。这个系统将允许用户提交留言,并将这些数据持久化存储,以便其他用户可以查看和交互。以下是对每...

Global site tag (gtag.js) - Google Analytics