tomcat6环境中,在页面里.
<html>
#{usebean.property} //报错 (问题1:JSP2.1不是说可以这样用吗?)
${usebean.property} //正确执行
${usebean.method}  //报错.(问题2:怎样在页面中,能动态的调用方法,JSP2.0的调用是静态的,需用标签.)
</html>
谢谢.

解决方案 »

  1.   

    访问应用程序数据需要进行以下几个步骤: 
    1.编写public类的static public 方法,只有static public的方法才能被标记表达试访 
    问。 ---------------------------- 
    定义和使用函数 
    表达式语言允许你定义可在表达式中调用的函数。函数必须作为public类中的public s 
    tatic方法编写。同时要将文件映射到TLD标志库文件中。 为了说明函数的使用,我们举一个简单的例子,把两个数相加。首先要编写求两数之和 
    的Java方法代码,如代码示例所示,这里定义了一个静态方法,它接收两个字符串参数 
    ,把它们解析成整数并返回它们的和。 示例文件:Compute.java package jsp2.examples.el; 
    import java.util.*; 
    public class Compute { 
    public static int add(String x, String y) { 
    int a = 0; 
    int b = 0; 
    try { 
    a = Integer.parseInt(x); 
    b = Integer.parseInt(y); 
    }catch(Exception e) {} 
    return a + b; 


    用javac把这段代码编译成功后,下一步就要把函数的签名映射到标签库。 
    ---------------------------- 2.将方法映射到TLD表中 ---------------------------- 
    配置标记库描述文件 函数描述符 
    <function> 
    <description>add x and y</description> 
    <name>add</name> 
    <function-class>jsp2.examples.el.Compute 
    </function-class> 
    <function-signature>int 
    add(java.lang.String,java.lang.String) 
    </function-signature> 
    </function> 
    现在我们就可以编写一个JSP页面来使用这个函数。代码示例5是包含两个字段的一个表 
    单,用户输入两个数字并按下“求和”按钮,就会调用上面的函数并把两个数相加,结 
    果在同一个页面中显示出来。 
    ---------------------------- 3.在JSP页面中调用要引用的Taglib标记,然后就可以在jsp页面中访问了。 ---------------------------- 
    代码示例5: math.jsp 
    <%@ taglib prefix="my" 
    uri="http://jakarta.apache.org/tomcat/jsp2-example-taglib %> 
    <HEAD> 
    <TITLE>Functions</TITLE> 
    </HEAD> 
    <BODY> 
    <H3>Add Numbers</H3> 
    <P> 
    <FORM action="math.jsp" method="GET"> 
    X = <input type="text" name="x" value="${param["x"]}"> 
    <BR> 
    Y = <input type="text" name="y" value="${param["y"]}"> 
    <input type="submit" value="Add Numbers"> 
    </FORM> 
    <P> 
    The sum is: ${my:add(param["x"],param["y"])} 
    </BODY> 
    </HTML> 
    ---------------------------- 
    看明白了没?
      

  2.   

    内置的11个隐含对象: 
    为方便的获得WEB应用程序的相关数据,EL表达式语言定义了一些隐含对象。隐含对象共 
    有11个对象,(JSP中具有9个隐含对象,EL比JSP中具有更多的隐含对象,这样EL比JSP更 
    方便的获取数据) 使用这些对象可以很方便的访问Web 程序数据。 隐含对象包括Session(获得当前web程序的Session值),cookie(获得WEB程序的Cookie值 
    ),header,headerValues(获得用户的Http数据访问头部信息),Param和ParamValues(获得 
    用户提交数据参数)等。 使用${隐含对象名称["元素"]} 就可以获得这个值了,例如${header("host")} 可以显示 
    http头部中host的值,${param("username")},可以获得显示用户表单提交的用户. 使用 
    ${empty(param("username")} 可以判断用户提交表单是否为空等。(这样比jsp1.2中使 
    用request.getParamter("username") 要简化和方便很多了) ---------------------------- 
    隐含对象及隐含对象访问实例 
    EL 表达式定义了11个隐含对象,使用这11个对象可以很方便的读取到session,cookie,H 
    ttpHeader,用户提交表单(param)等 隐含对象 内容 
    applicationScope 应用程序范围内的scoped变量组成的集合 
    cookie 所有cookie组成的集合 
    header HTTP请求头部,字符串 
    headerValues HTTP请求头部,字符串集合 
    initParam 全部应用程序参数名组成的集合 
    pageContext 当前页面的javax.servlet.jsp.PageContext对象 
    pageScope 页面范围内所有对象的集合 
    param 所有请求参数字符串组成的集合 
    paramValues 所有作为字符串集合的请求参数 
    requestScope 所有请求范围的对象的集合 
    sessionScope 所有会话范围的对象的集合 
    下面是获取HTTP访问头部数据和用户提交数据的示例 
    EL表达式 运算结果 
    ${header["host"]} 这里得到HTTP连接头部的host值 
    ${header["accept"]} 这里获得HTTP头部的accept值 
    ${header["user-agent"]} 这里获得HTTP头部的user-agent值 
    ----------------------------
      

  3.   

    楼上的.无语了.我说的是JSP2.1.不是你COPY来就行了的.
      

  4.   

    楼上的.无语了.我说的是JSP2.1.不是你COPY来就行了的.
      

  5.   

    你在JavaBean中把方法写成setSum()
    Jsp中就可以用${userBean.sum}
      

  6.   

    嗯.在程序中我是这样使用的.只是不明白JSP2.1不是声称他的EL能写成#{}吗?