mount

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

EL能直接方法Bean里面的方法吗

例如test下MyBean java文件
package test;
public class MyBean {
   private int id; //私有属性
   public MyBean() {
     return();
  }
  public int getId() {return id;}
  public void setId(int id) {this.id=id;}
}

jsp页面
MyJsp.jsp
<%@page contentType="text/html; charset=gb2312" %>
<%@page import="test.MyBean" %>
<jsp:useBean id="mybean" class="test8.BooksBean" scope="session"/>
<jsp:setProperty property="*" name="mybean"/>
<html>
<%mybean.setId(1);%>
${ mybean.id }   <!--知道这个是可以的-->
${ mybean.getId() }   <!--这个可以么? 我试验是不行的, 不过不放心, 按理应该是可以的哦.  要是这个行的话告诉下, 顺便问问有没有其他的访问方式  例如--mybean.getId()   ,   mybean.getId     >
</html>

疑问1:EL表达式  ${ mybean.getId() }  能不能访问Bean的方法,
疑问2:除了直接访问属性和访问方法以外(加入疑问1是可以访问的), 有没有其他的访问方式
疑问3:Bean的属性是私有的, 为什么能访问? (是不是因为这是EL的特性)
疑问4:有没有注意到MyBean.java的否则方法, 有个语句是return, 既然是return应该是直接返回了, 为什么还能继续执行, 是不是没用到这个构造方法.
疑问5:新手拉, 大虾们泼泼水.

 

 

 

 

EL是从作用域(如:request,session。。等等)中找对象,
所以假如你把myBean对象放到request范围内,
那么画面就不用写<jsp:useBean id="mybean" class="test8.BooksBean" scope="session"/>,
直接可以用${myBean.id} 就可以取到myBean对象的id值。这句话就会调用myBean对象的getId()方法。疑问1和2都解决了。
疑问3:EL不会访问私有属性,而是getId()方法。了解一下属性封装概念。
疑问4:看问题内容你好像不了解MyBean.java的作用,了解一下属性封装概念,什么是javaBean?
在这里是容器,把ID值保存起来的一个对象,用get,set方法去存取这个ID值。
 
 
 
 
EL表达式:expression language,即表达语言,
它是为了便于存取数据而定义的一种语言,JSP2.0之后才成为一种标准。
形式:以“$”结尾,通过PAGE指令来说明是否支持EL表达式,
具体举例:
<%@ page contentType="text/html; charset=GB2312" isELIgnored="false" %> //声明可以使用EL表达式,如果为"ture",则表示忽略$//
如果希望在此处用EL表达式写出上面定义的count的值 </body> </html>
posted on 2011-11-16 17:26  http://guoyinfeng.info/  阅读(192)  评论(0编辑  收藏  举报