我在Tag处理类中用pageContext.setAttribute("name1",name)的方法把name的值用变量name1输出到页面,我用写TagExtraInfo类使容器以脚本变量的形式提供给页面VariableInfo info = new VariableInfo("name2", "String", true,VariableInfo.AT_END);          return new VariableInfo[] {info}; 这里我用了name2,请问在JSP页面中输出时是写name1还是name2呢?我这样写有问题吗?
请问setAttribute里的name1和VariableInfo的name2是怎么关联的?如果有多个输出变量,Web容器怎么知道哪个对应的是哪个呢?

解决方案 »

  1.   

    info 里的一个属性对应"name2"这个字符对像。你的“name2”是一个字符串对像。name2并不是对像。name是一个对像。在JSP中输出肯定是用"name1"得到那个name对像.
      

  2.   

    资源网_IT软件资源网_软件开发教程http://www.5ijavabook.cn
      

  3.   

    请问1楼的,可以说得再详细一点吗?
    请问setAttribute里的name1和VariableInfo的name2是怎么关联的?如果有多个输出变量,Web容器怎么知道哪个对应的是哪个呢?
      

  4.   

    你问的是在标签与JSP页面共享变量的问题
    你在标签中只设置了name1,在TagExtraInfo继承类中要用name1获得,像你说的那样用name2获得,如果有值,如果是对的,可能值是在别的域中设置的。
    设置变量时最好设置作用域
    pageContext.setAttribute("name1","名字",PageContext.PAGE_SCOPE);
    对于标签实现类和TagExtraInfo实现类是怎样关联的,是在tld文件关联的。
    <tag>
       <name></name>
       <tag-class>标签类</tag-class>
       <tei-class>TagExtraInfo类</tei-class>
       <body-content>JSP</body-content>
    </tag>