`
acheron
  • 浏览: 66367 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

被忽略的javabean问题

    博客分类:
  • J2EE
阅读更多

昨天群聊时候,某兄弟遇到的一个javabean问题,不能找到属性

下面先把他代码发出来,

读者先看看那里错误,给你5分钟时间喔!

<body>
     <%! String sCPU=""; %>
    <%! String sHarddisk=""; %>
    <%! String sPrice=""; %>
    <% 
    sCPU=request.getParameter("clq");
    sHarddisk=request.getParameter("yp");
    sPrice=request.getParameter("jiage");
    %>
        <jsp:useBean id="computerbeans" scope="page" class="javado.javado"/>
    <jsp:setProperty name="computerbeans" property="sCPU" value="<%= sCPU%>"/>
    <jsp:setProperty name="computerbeans" property="sHarddisk" value="<%= sHarddisk%>"/>
    <jsp:setProperty name="computerbeans" property="sPrice" value="<%= sPrice%>"/>
    你需要的计算机配置的信息为:<br>
    处理器:<jsp:getProperty name="computerbeans" property="sCPU"/><br>
    硬盘:<jsp:getProperty name="computerbeans" property="sHarddisk"/><br>
    价格:<jsp:getProperty name="computerbeans" property="sPrice"/><br>
    
    <br>
   <form action="index.jsp">你想要的处理器型号:<input type="text" name="clq"><br>
   你要的硬盘:<input type="text" name="yp"><br>
   你要的价格:<input type="text" name="jiage"><br>
   <input type="submit" value="提交">
   </form>
  </body>

 

下面这个是javabean

package javado;

public class javado {
private String sCPU;
private String sHarddisk;
private String sPrice;
public String getSCPU() {
return sCPU;
}
public void setSCPU(String scpu) {
sCPU = scpu;
}
public String getSHarddisk() {
return sHarddisk;
}
public void setSHarddisk(String harddisk) {
sHarddisk = harddisk;
}
public String getSPrice() {
return sPrice;
}
public void setSPrice(String price) {
sPrice = price;
}


}

 

 

 

***************这是问题,答案分割线********************

5分钟时间吧,哈哈

5

4

3

2

1.9

1.8

....

 

给一个提示,异常是这样

严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Cannot find any information on property 'sCPU' in a bean of type 'javado.javado'
at org.apache.jasper.runtime.JspRuntimeLibrary.getReadMethod(JspRuntimeLibrary.java:839)
at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1048)
at org.apache.jasper.compiler.Node$GetProperty.accept(Node.java:1106)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2343)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2393)
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2399)
at org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2343)
at org.apache.jasper.compiler.Generator.generate(Generator.java:3365)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

 

第二个提示:

JAVA命名规范:
1、 包命名:全部字母小写:org.sky.darkness
2、 类命名:单词的首字母大写:SimpleBean
3、 属性名称:第一个单词的首字母小写,之后的每一个单词的首字母大写
4、 方法命名:与属性命名相同:public void sayHellow();
5、 常量命名:全部单词大写:final String DBDRIVER=”darkness”

答案:

根据提示二第2,3点修改就行了

 

被忽略的问题在这:

规范指明: "第一个单词的首字母小写,之后的每一个单词的首字母大写"中的"单词"

具体含义是啥?

例子中的属性sCPU,C就是第二个单词了

而引发的问题,就在此, 
属性命名对于JavaBean来讲,第一个与第二个字母都要小写

javabean specification,规定了一般的属性名称首字母小写,

如果遇到前两个字母大写的属性,则getter方法保持属性名称不变,

例如URL属性的 getter方法为getURL,

但是并没有规定类似esCPU这样的属性的getter方法写成getsCPU的形式。
如果要符合javabean规范,则只能将sCPU改成scPU或者scpu了

入门资料都没有说到这个问题,

但新手经常犯这个毛病,坚持不下去就会严重丧失学习兴趣了

分享到:
评论

相关推荐

    xml转javaBean,javaBean转xml,xml标签大小写问题,以及对xml特殊符号的处理

    3. XML标签大小写问题: XML是大小写敏感的,这意味着“element”和“Element”被视为不同的元素。在定义XML Schema时,应该明确指定元素和属性的名称,以保持一致性。在转换为JavaBean时,确保JavaBean的属性名与...

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

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

    忽略字段的首字母大小写,将json字符串转成javabean对象

    忽略字段的首字母大小写,将json字符串转成javabean对象,解决Java对象中属性中首字母大写而取不到值(取到的值为空)的问题 忽略字段的首字母大小写,将json字符串转成List,解决Java对象中属性中首字母大写而取不...

    忽略字段的首字母大小写,将json字符串转成javabean

    忽略字段的首字母大小写,将json字符串转成javabean,忽略字段的首字母大小写,将json字符串转成List

    mybatis逆向生成javaBean

    这一过程通常被称为MyBatis Generator(MBG)的使用,它是MyBatis框架的一个扩展插件。 MBG基于XML配置文件或注解,可以根据数据库中的表信息生成Java模型类、Mapper接口以及Mapper XML文件。在JavaBean生成过程中...

    jsp+javabean登陆

    尽管示例中未直接展示JavaBean的具体实现,但其重要性不容忽视。 #### Servlet:处理登录请求的核心 `LoginServlet.java`作为处理登录请求的后端组件,承担着接收并处理前端表单提交数据的任务。Servlet会检查...

    Dozer一个JavaBean至JavaBean映射器

    **Dozer:JavaBean到JavaBean的映射神器** Dozer是Java开发中的一款强大工具,主要用于Java Bean之间的数据映射。它简化了在不同对象模型之间传递数据的过程,尤其在处理复杂对象结构时,其功能显得尤为重要。Dozer...

    利用反射实现JavaBean 的自动赋值

    JavaBean的设计模式非常适合用来表示简单的数据容器,在Web开发中经常被用作模型(Model)组件。 #### 自动赋值原理 在本例中,通过一个名为`ParameterUtil`的工具类实现表单数据与JavaBean的自动绑定。具体步骤...

    简单的JSP+JAVABEAN+ACCESS留言簿.

    虽然这是一个简单的项目,但安全问题不容忽视。比如,应防止SQL注入攻击,可以通过预编译的PreparedStatement来避免。另外,敏感信息(如数据库连接字符串)不应硬编码在源代码中,而应存储在配置文件或环境变量中...

    mybatis逆向生成javaBean_generatorSqlmapCustom

    MyBatis逆向生成JavaBean和GeneratorSqlmapCustom是一个实用的开发工具,它极大地提高了开发效率,特别是对于处理大量数据库表映射到Java对象的工作。这个工具能够自动生成JavaBean和SQL Map配置文件,帮助开发者...

    JavaBean和RMI 学习

    JavaBean保留了其他软件组件的技术精华,并增加了被其他软件组件技术忽略的技术特性,使得它成为完整的软件组件解决方案的基础,并在可移植的Java平台上方便地用于网络世界中 Java RMI(Remote Method Invocation)-...

    根据表结构生成JavaBean,史上最强最专业的表结构转JavaBean的工具(第5版)

    更重要的是所有的配置都能被保存到本地,只要配置过一次,下次使用只要点一下生成JavaBean,下一秒就能拿到你想要的JavaBean了,完全实现秒生成。 这次版本更新如下: 1、修复生成JavaBean后缀错误的问题。 2、...

    使用xstream实现对JavaBean与xml字符串的互转

    另外,可以使用`asXML()`方法的第二个参数来指定哪些字段不应被序列化。 **总结** XStream提供了一种简洁、直观的方式来处理Java对象和XML之间的转换,极大地简化了开发工作。通过自定义别名、转换器以及安全设置...

    javabean编的查询

    JavaBean的主要特点包括属性、构造函数和getter/setter方法,它们使得这些对象能够被其他组件轻松地访问和操作。 在这个“javabean编的查询”中,我们讨论的是如何使用JavaBean来执行SQL查询。这是一个常见的做法,...

    java面试题 包含 corejava javabean web

    选项B中,`equalsIgnoreCase()` 方法用于比较两个字符串是否相等,忽略大小写差异,因此也会返回`true`。 7. **异常处理** (CoreJava) 在给出的代码片段中,`ExampleB` 类继承自 `ExampleA`,`ExampleA` 类又...

    jackson操作json和javabean示例

    同时,可能还展示了如何配置`ObjectMapper`以满足特定的序列化和反序列化需求,比如日期格式化、忽略未知属性等。 6. **示例代码**:项目中的示例代码会涵盖各种使用场景,如简单的JavaBean到JSON的转换,复杂类型...

    JSP+JavaBean 仓库管理系统

    此外,系统的安全性、可维护性和用户体验也是开发过程中不容忽视的要素。 综上所述,"JSP+JavaBean 仓库管理系统"利用了JSP的动态网页技术和JavaBean的组件模型,构建了一个高效、易用的仓库管理解决方案。通过良好...

    用javabean做的上传文件的例子

    6. **安全性**: 文件上传的安全问题不容忽视,包括防止文件覆盖、非法文件类型上传(例如脚本文件)、以及防止路径遍历攻击。在处理上传时,应确保对文件名进行安全处理,并对上传的文件类型进行严格的限制。 7. **...

    基于jsp+javabean的网上花店

    在这个项目中,JavaBean可能被用来封装花卉数据、用户信息以及处理业务逻辑,比如计算总价、验证用户输入等。 3. **MVC模式**:Model-View-Controller模式是Web应用设计中的常见架构模式。在本项目中,Model代表...

    基于Java的WordPOI设计源码,实现Word接口文档转JavaBean高效转换工具

    该项目是一款基于Java的WordPOI设计源码,旨在实现Word接口文档向JavaBean的高效转换,包含30个文件,涵盖7个JAR包、5个Java源代码、3个.docx文档、3个Gradle构建配置、2个YAML配置文件、2个锁文件、1个Git忽略规则...

Global site tag (gtag.js) - Google Analytics