加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

javabean&el&jstl

发布时间:2020-12-15 07:58:16 所属栏目:Java 来源:网络整理
导读:1.?JavaBean 规范 (1)? 有一个无参构造 (2)? 提供 get 和 set 方法 (3)? 字段属性就是定义的 private 等修饰的字段 (4)?Bean 字段为 get 和 set 方法中取出 get 方法中首字符改为小写 Javabean 的自省机制 通过 Introsppector 的 getBeanInfo 方法得到 bean

1.?JavaBean规范

(1)?有一个无参构造

(2)?提供getset方法

(3)?字段属性就是定义的private等修饰的字段

(4)?Bean字段为getset方法中取出get方法中首字符改为小写

Javabean的自省机制

通过IntrosppectorgetBeanInfo方法得到bean

通过BeanUtil中的copyProperties()方法把一个对象的所以属性复制给另一个对象

可以把map中的属性也给对象

?

package cn.jiedada.beantest;

import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import org.apache.commons.beanutils.BeanUtils;
import org.junit.Test;

import cn.jiedada.domain.Person;

public class BeanTest {
    @Test
    public void f1() throws IntrospectionException{
        BeanInfo beanInfo = Introspector.getBeanInfo(Person.class,Object.class);
        //属性描述器
        PropertyDescriptor[] dd = beanInfo.getPropertyDescriptors();
        for (PropertyDescriptor pd : dd) {
            System.out.println(pd);
            //获得所有的读的方法
            Method readMethod = pd.getReadMethod();
        }
    }
    @Test
    public void f2() throws IllegalAccessException,InvocationTargetException{
        Person p1 = new Person("tom",18,2,"资中");
        Person p2 = new Person();
        BeanUtils.copyProperties(p2,p1);
        System.out.println(p2);
    }
    //还可以通过map获得
}
View Code

?

person方法自己定义就可以了

?

2.?EL表达式(其实就是就是一个三目运算符)

(1)?${属性名 }可以得到pageContext,requset,session,application中依此获得属性名中的值,也可以通过...ScoperequsetScope

可以通过${属性名.bean字段 }获得bean属性值

(2)?通过pageContext.request.contextpath获得上下文路径

3.?jstl表达式

(1)?导如包jstl中的包

(2)?jsp中使用标签库为<%@ taglib uri=”http://java.sun.com/jsp/jstl/core prefix=”c”?%>

这样就可以使用jstl表达式了

其中有<%c:if test=”${age>18 }”?%>这就是if表达式

Foreach的使用

<%c:forEach item=”${数组或者集合名 } ”??var=”单个的对象属性”?%>

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE html >
<html>
<head>
<title>Insert title here</title>
</head>
<body>
    <%
        pageContext.setAttribute("name","tom");
        request.setAttribute("age",18);
        session.setAttribute("name","jack");
        application.setAttribute("age",20);
    %>
    ${name } 
    ${age } 
    ${sessionScope.name } 
</body>
</html>
View Code

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE html >
<html>
<head>
<title>Insert title here</title>
</head>
<body>
    ${name } 
    ${age } 
    ${sessionScope.name } 
</body>
</html>
View Code

<%@page import="cn.jiedada.domain.Person"%>
<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE html >
<html>
<head>
<title>Insert title here</title>
</head>
<body>
    <%
    Person p = new Person("tom",1,"成都");
    request.setAttribute("p1",p);
    %>
    ${p1 } </br>
    ${p1.name } 
    ${p1.age } 
    ${pageContext.request.contextPath }
</body>
</html>
View Code

<%@page import="cn.jiedada.domain.Person"%>
<%@ page pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html >
<html>
<head>
<title>Insert title here</title>
</head>
<body>
    <%
    Person p = new Person("tom",p);
    %>
    <c:if test="${p1.age>=18 }" var="s">
        <h1>成年</h1>
    </c:if>
    <c:if test="${!s }" >
        <h1>未成年</h1>
    </c:if>
</body>
</html>
View Code

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="cn.jiedada.domain.Person"%>
<%@ page pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html >
<html>
<head>
<title>Insert title here</title>
</head>
<body>
    <%
    List<Person> list=new ArrayList<Person>();
    list.add(new Person("tom","成都"));
    list.add(new Person("tom",3,4,5,"成都"));
    request.setAttribute("list",list);
    %>
    <table border="1" style="border-collapse: collapse;">
        <tr>
            <td>编号</td>
            <td>姓名</td>
            <td>年龄</td>
            <td>地址</td>
        </tr>
        <c:forEach items="${list }" var="p">
        <tr>
            <td>${p.id }</td>
            <td>${p.name }</td>
            <td>${p.age }</td>
            <td>${p.address }</td>
        </tr>
    </c:forEach>
    </table>
    
</body>
</html>
View Code

?

4.?mvc概念

是一种概念m:model模型就是写所有的java代码的地方,v:view视图为前端界面的展示,c:Contreller为现阶段为servlet代码

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读