javaweb开发-javabean+EL+JSTL

JavaBean规范:


JavaBean 是一种JAVA语言写成的可重用组件(类)

必须遵循一定的规范

         (1):类必须用public修饰

         (2):必须保证有公共无参数构造器

         (3):包含属性的操作手段(给属性赋值,获取属性值)

  分类: 

        (1)复杂:UI:如Button,Panel,Window类

        (2)简单:domain,dao,service组件,封装数据,操作数据库,逻辑运算

 成员:

        (1)方法:method

        (2)事件:event

        (3)属性:property

-----------------------------------------------------------------

 属性:

     (1)attribute:表示状态,java中没有这个概念,很多人把字段(Field)称之为属性(attribute)

     (2)property:表示状态,但不是字段,是属性的操作方法(getter/setter)决定的,框架中使用的大多数属性

设置属性值:writeableMethod:setter方法

          public   void  setXxx(数据类型   变量){

                      赋值操作

                    }

            若:setName--------------->属性:name

            若:setUserName --------------->属性:userName

            若:setISBN----------------------->属性:ISBN

  获取属性值:readableMethod:getter方法

             public  数据类型 getXxx(){

                       返回一个结果值

             }

    若:getName--------------->属性:name

    若:getUserName --------------->属性:userName

   若:getISBN----------------------->属性:ISBN

   若:数据类型是boolean类型,则不叫get方法,而是is方法

标准的属性:一般提供字段,Eclipse生成getter/setter,字段和属性同名

                    是否需要同时提供getter/setter

public class User{

  private String firstName;

  private String lastName;

 public void setFullName(String fullName){}

}

JavaBean和EJB的区别:

               EJB:企业级javabean

内省(自省)机制(Ubtrispector):操作JavaBean中的方法/属性/事件

//static BeanInfo getBeanInfo(class<?> beanClass);
//获取指定字节码对应的javaBean信息对象
BeanInfo beanInfo = Introspector.getBeanInfo(Person.class,Object.class);
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
for(PropertyDescriptor pd: pds){
System.out.println("属性名称:"+pd.getName());
System.out.println("属性类型"+pd.getPropertyType());
System.out.println("写入方法"+pd.getWriteMethod());
System.out.println("属性get"+pd.getReadMethod());
System.out.println("-------------------");
}

开发(框架)中,经常使用apache common 的BeanUtils工具来操作JavaBean

-------------------------------------------------------------------------------------------------

准备:

     commons-beanutils-1.9.2.jar

EL:

在el中访问javabean属性方式:

方式一:使用“  .  ”来访问

方式二:使用[]访问

    ${ 对象.属性名}----------------->对象.getXXX,属性必须提供get方法

  若操作的是map :${ 对象.key}

${ u.userName} 等价于${u["userName"]}

-----------------------------------------------------------------------

 l获取上下文路径:

    Servlet:reques.getContextPath();

    pageContext.getRequesr().getContextPath();

     jsp:${pageContext.request.contextPath}

  在el中 ==比较的是值不是对象引用地址

  ---------------------------------------------------------

从tomcat7开始,el中不仅支持属性访问还支持获取上下文路径

  ${pageContext.getRequest(),getContextPath()}

el目的:获取作用域中的共享数据

JSTL:为了完全在jsp中消除java代码,学习java标签库

 java标签库:java stander tag lib

 (1)自定义标签库

 (2)标准标签库(sun预先提供,我们可直接使用)

学习mvc(Strusts/spring mvc)框架都会学习一套标签

--------------------------------------------------------------------------------------

准备:

 (1)准备jstl相关的jar包(tomcat/webapps/example/web-inf/lib)

                         jstl.jar         el-api.jar

                         standard.jar  jsp-api.jar

  使用JSTL 的jsp页面,引入标签库:

引入核心jstl

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

JSTL核心常用标签:


 (1)逻辑判断(添加选择)标签:(if-else if-else)

   <c:if test="${bool表达式}" var="变量" scope="page作用域"/>


   <c:if test="${num==0 }">
               表达式为true显示内容
    </c:if>

--------------------------------------------------------------------------------------】

 多条件判断:choose标签

    <c:choose>
    <c:when test="${num>0 }">ee222</c:when>
    <c:when test="${num==0 }">000</c:when>
    <c:when test="${num<0 }">-282</c:when>
   </c:choose>

-----------------------------------------------------------------------------------------

迭代循环标签:(foreach)

   (1) 迭代集合对象

<%
  pageContext.setAttribute("arrs", Arrays.asList("a","b","c","d"));
%>
迭代集合中所有数据:
底层:会把每一个迭代的元素,存放在pageContext作用域中
  varStatus--z迭代状态--index 索引
  pageContext.setAttribute("e",每一个迭代的元素);
  <br>
 <c:forEach items="${arrs}" var="e" varStatus="vs">
    ${vs.count}----------- ${e} <br>
   
    
 </c:forEach>
 输出11-20
  <c:forEach begin="11" end="20" var="num" step="2" >
   ${num}
   <br>
  </c:forEach>

Date时间格式

 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

<%
  pageContext.setAttribute("date",new java.util.Date());
%>
${date}
<fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss"/>

定义共同的内容放在lib的jsp中

  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

再使用 <%@ include file="lib.jsp" %>添加




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值