zoukankan      html  css  js  c++  java
  • JavaBean--JavaBean与表单

    SimpleBean.java:

    package cn.mldn.lxh.demo ;
    public class SimpleBean {
        private String name ;
        private int age ;
        /*
        public SimpleBean(){
            System.out.println("============ 一个新的实例化对象产生 ===========") ;
        }
        */
        public void setName(String name){
            System.out.println("----------------------") ;
            this.name = name ;
        }
        public void setAge(int age){
            System.out.println("**********************8") ;
            this.age = age ;
        }
        public String getName(){
            return this.name ;
        }
        public int getAge(){
            return this.age ;
        }
    }

    input_bean.html:

    name,age和JavaBean里的名字一样

    <html>
    <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
    <body>
    <form action="input_bean.jsp" method="post">
        姓名:<input type="text" name="name"><br>
        年龄:<input type="text" name="age"><br>
        <input type="submit" value="提交">
        <input type="reset" value="重置">
    </form>
    </body>
    </html>

    input_bean.jsp:

    第一种方法:

    原始方式手工定义JavaBean的对象,之后用request接收所有的参数

    <%@ page contentType="text/html" pageEncoding="GBK"%>
    <%@ page import="cn.mldn.lxh.demo.SimpleBean"%>
    <html>
    <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
    <body>
    <%
    request.setCharacterEncoding("GBK") ;
    SimpleBean simple=new SimpleBean();
    simple.setName(request.getParameter("name"));
    simple.setAge(Integer.parseInt(request.getParameter("age")));
    %>
    <h3>姓名:<%=simple.getName()%></h3>
    <h3>年龄:<%=simple.getAge()%></h3>
    </body>
    </html>

    第二种方法,用标签完成

    <%@ page contentType="text/html" pageEncoding="GBK"%>
    <html>
    <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
    <body>
    <%    request.setCharacterEncoding("GBK") ;    %>
    <jsp:useBean id="simple" scope="page" class="cn.mldn.lxh.demo.SimpleBean"/>
    <jsp:setProperty name="simple" property="*"/>
    <h3>姓名:<%=simple.getName()%></h3>
    <h3>年龄:<%=simple.getAge()%></h3>
    </body>
    </html>

    发现,通过一个<jsp:setProperty>标签就可以完成所有请求参数的自动设置,而且可以自动将输入的String型变成int型的数据,这个标签的语法如下:

    <jsp:setProperty>:表示操作指定JavaBean中的属性,里面定义了两个属性。

    name:表示使用JavaBean中的id的定义

    property:表示设置里面的属性内容,如 *, 表示与表单相匹配。

    如果把input_bean.htm里的name改成name1,则name将不能被自动设置。

    如果想让表单的参数可以设置到JavaBean中的话,需要让参数的名称与属性一致,但是还有一个概念。

    在编写java的时候一致强调,类中的属性必须封装,封装之后的属性需要按照指定的格式编写对应的setter,getter方法。

    使用这种操作,最终调用的是JavaBean中的setter方法,setter方法有严格的命名要求,所以要求参数名称与属性名称一致。

    这种操作原理依然是反射机制,在java开发经典中一直强调通过反射,将指定属性名称的setter方法进行调用。

    这种操作有个问题,如果要输入的内容是int型的话,则必须输入数字,否则会出现问题。

    总结:

    1. 通过JavaBean可以自动完成参数的设置问题

    2. 完成的原理依靠的是反射机制

  • 相关阅读:
    web图片100%宽度自适应,高度不塌陷
    基于Kafka+ELK搭建海量日志平台
    一句话撸完重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁等
    MySQL数据库设计规范
    夺命连环问:一个 TCP 连接可以发多少个 HTTP 请求?
    [Kafka]
    ZooKeeper学习总结 第一篇:ZooKeeper快速入门
    Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作
    opencv处理验证码python代码
    mac使用pytesseract
  • 原文地址:https://www.cnblogs.com/wujixing/p/4953848.html
Copyright © 2011-2022 走看看