JSP第三篇【JavaBean的介绍、JSP的行为--JavaBean】(二)

简介: JavaBean就是一个普通的java类,也称之为简单java对象--POJO(Plain Ordinary Java Object),是Java程序设计中一种设计模式,是一种基于 Java 平台的软件组件思想 JavaBean遵循着特定的写法,通常有以下的规则: 有无参的构造函数 成员属性私有化 封装的属性如果需要被外所操作,必须编写public类型的setter、getter方法 上面的文字看起来好像很高大上,javaBean其实非常简单,下面的代码就是按照特定写法、规则编写的一个JavaBean对象

我们来使用jsp:setProperty了来看看:

 <jsp:useBean id="person" class="domain.Person" scope="page"/>
    <%--指定属性名称为age--%>
    <jsp:setProperty name="person" property="age"/>
    <%
        System.out.println(person.getAge());
    %>

也可以完成,并且代码更少,功能更强大52.jpg

  • 代码更少可以直观看出来,为什么我说它功能更加强大呢?表单提交过来的数据都是字符串,在我们没有用jsp:setProperty前,我们存储设置int类型或其他非字符串类型的数据是需要强转的!但是jsp:setProperty不需要我们强转,它内部自动帮我们转换了
  • 我们再来使用一下自动匹配来感受它的强大之处吧
    <jsp:useBean id="person" class="domain.Person" scope="page"/>
    <%--property的值设置为*就代表自动匹配--%>
    <jsp:setProperty name="person" property="*"/>
    <%
        System.out.println(person.getAge());
        System.out.println(person.getName());
    %>

我们再来看一下效果:53.jpg

  • 看到这里,有人可能会觉得好神奇:只要设置property的值就可以将表单传递过来的数据封装到JavaBean对象中了!这究竟是这样做到的???
  • 细心的朋友会发现,JavaBean的属性名称和表单的name属性设置的名称是一模一样的
  private String username ;
        private int age;
        用户名:<input type="text" name="username">
        年龄:<input type="text " name="age">
  • 如果我设置不一样还能不能用?我们试试:表单name属性的username改成是user

   用户名:<inputtype="text"name="user">

  • 我们再来看看还能不能把表单的数据完整地封装JavaBean对象中
    54.jpg
  • 我们可以发现:要想能够把表单带过来的数据成功封装到JavaBean对象上,名字要一致!也就是说:JavaBean属性名要和表单的name的名称一致
  • 至于原理,它是通过反射来做的,调用了内省的方法!,我们看编译后的JSP就明白了。
    55.jpg

jsp:getProperty

  • 语法:

  • 该jsp行为十分简单,我们来使用一下就知道了。
 <%--使用<jsp:getProperty>输出--%>
    <jsp:getProperty name="person" property="username"/>
    <jsp:getProperty name="person" property="age"/>

 

  • 效果:

56.jpg

原理如下57.jpg

如果文章有错的地方欢迎指正,大家互相交流。

目录
相关文章
|
9月前
|
Java
学院管理系统【JSP+Servlet+JavaBean】(Java课设)
学院管理系统【JSP+Servlet+JavaBean】(Java课设)
72 3
学院管理系统【JSP+Servlet+JavaBean】(Java课设)
|
9月前
|
Java
排课系统【JSP+Servlet+JavaBean】(Java课设)
排课系统【JSP+Servlet+JavaBean】(Java课设)
104 5
|
9月前
|
Java
仓库管理系统【JSP+Servlet+JavaBean】(Java课设)
仓库管理系统【JSP+Servlet+JavaBean】(Java课设)
209 1
|
8月前
|
Java API
JSP 教程 之 JSP JavaBean 4
**JSP JavaBean教程摘要:** JavaBean是遵循JavaBean规范的特殊Java类,用于JSP中。`jsp:getProperty`读取属性(getter),`jsp:setProperty`设置属性(setter)。
43 0
|
8月前
|
Java API
JSP 教程 之 JSP JavaBean 3
**JSP JavaBean教程简述:** JavaBean是遵循JavaBean规范的特殊Java类,用于JSP中。`&lt;jsp:useBean&gt;`标签声明并实例化Bean,如`&lt;jsp:useBean id=&quot;date&quot; class=&quot;java.util.Date&quot; scope=&quot;page&quot;/&gt;`。`scope`决定Bean的作用域,`id`是变量名。示例显示日期:`&lt;%= date %&gt;`,输出如`Tue Jun 28 15:22:24 CST 2016`。
34 0
|
8月前
|
Java API
JSP 教程 之 JSP JavaBean 2
**JSP JavaBean 简介** JavaBean 是遵循特定规范的 Java 类,用于封装数据和业务逻辑。`StudentsBean.java` 示例展示了属性(firstName, lastName, age)及对应的 getter 和 setter 方法。编译得到 `StudentBean.class`,常放于 `/WebContent/WEB-INF/classes/包路径/` 下,以供JSP使用。
43 0
|
8月前
|
Java API
JSP 教程 之 JSP JavaBean 1
**JSP JavaBean 技术概览:** JavaBean遵循特定规范的Java类,具备默认无参构造器、实现Serializable接口以支持序列化。核心特性包括可读写的属性及对应的getter/setter方法。属性可通过getXXX()和setXXX()访问,如getMyName()和setMyName()对应属性myName。只读属性只有getter,只写属性只有setter。
45 0
|
9月前
|
Java
新闻发布系统【JSP+Servlet+JavaBean】(Java课设)
新闻发布系统【JSP+Servlet+JavaBean】(Java课设)
74 2
|
9月前
|
Java
学校人员管理系统【JSP+Servlet+JavaBean】(Java课设)
学校人员管理系统【JSP+Servlet+JavaBean】(Java课设)
69 2
|
9月前
|
Java
校园帮【JSP+Servlet+JavaBean】(Java课设)
校园帮【JSP+Servlet+JavaBean】(Java课设)
54 1