了解如何使用JSP EL表达式访问Object的属性

时间:2014-11-17 01:03:46

标签: jsp java-ee jsp-tags

我是J2EE开发的新手。我无法理解以下代码段的工作方式/原因。以下课程有以下问题:

  1. 该类具有非零构造函数。
  2. "的getName" accessor方法输入错误,应该是 "的getName"
  3. 没有相应的" setName" mutator方法。
  4. /* Java class  */
    
    public class HelloBean {
    
        private String name = "Hello Bean";
    
        public HelloBean(String test) {
            this.name = test;
        }
    
        public String getname() {
            return this.name;
        }
    }
    
    // End of Java Class 
    // Code in jsp page (only relevant code is shown)<br>
    
    <%
        HelloBean test = new HelloBean("HelloWorld");
        pageContext.setAttribute("test", test);
    %>
    
    <p>The value=${test["name"]}</p
    

    输出:(显示以下输出,不会抛出任何错误或异常)


    值= HelloWorld


    测试环境: Tomcat 7(jdk 1.6)

1 个答案:

答案 0 :(得分:0)

您传递HelloBean(String test)构造函数的值。由于您的String name是类HelloBean的全局变量。语法${test["name"]}将解释name值。

它等同于java的ObjName.VariableName,它将打印其值。您可以将其作为${name}来尝试,它将InvalidProperyException抛出setter和getter错误。

Can JSP EL do direct attribute access可能会有所帮助