package ch22;
public class link
{
public String getLinkStr()
{
return "abc";
}
}以上编译成link.class下面为jsp文件,请问属性linkStr是哪来的?是不是java有规定,getXXX()方法中XXX部分就是属性名?可以在getProperty中引用?可大小写也不一致啊?<jsp:useBean id="lnk" scope="page" class="ch22.link"/>
<jsp:getProperty name="lnk" property="linkStr"/>

解决方案 »

  1.   

    这是jsp的特性,对于在有get方法的属性都可以直接获取,而且XXX首字母在页面层面必须是小写的
    这样才可以满足jsp的内部解析机制
      

  2.   

    这个是java的基础知识了。java的属性定义认为,getXXX 和 setXXX就是属性XXX的访问器。至于说这个属性是从那里获得的,就完全是访问器的实现细节的事情,是不是实际上存在着一个叫做XXX的字段,并不重要。甚至这个字段根本就不存在都是可以的。
      

  3.   

    这个不是jsp的特性,而是java关于bean的规范定的东西。只是说jsp也在利用这个个规范而已。
      

  4.   

    是不是类的 getXXX 和 setXXX 方法与其它方法相比,比较特殊?定义了这两个方法,就意味着也定义了属性XXX?比如上面定义一个不是以get开头的方法:
    public   String   ggggetLinkStr() 

    return   "abc"; 

    那么下面jsp中就不能用<jsp:getProperty ……  来调用了吧?
      

  5.   

    jsp:setProperty称为设置属性标记,jsp:getProperty称为获取属性标记,就是通过 property="XXX"这个属性将其value通过setXXX()方法存入到javabean中,或者通过getXXX()将javabean中对应实例域的值返回,XXX的部分必须是完全一致的
      

  6.   

    XXX的部分必须是完全一致的
    ----------------------------
    这个是不是说错了? getLinkStr() 和 property="linkStr" 字母L大小写不一样,也能运行。
      

  7.   

    在前台调用的时候不是调用的属性名,而是通过java的反射机制,得到bean中的get方法,然后将get***后面的字符串截取出来当作property
      

  8.   

    按我的理解是LZ用的是JSP标签.而JSP标签查找的方法是
     查找顺序:    JSP标签--->TLD文件--->JAVA.CLASS文件
    这点只需要知道就行了,因为开发一个JSP标签很麻烦
    而LZ所说的getXXX()方法中XXX部分就是属性名?可以在getProperty中引用?只需记着大小写完全一样就行了