代码之家  ›  专栏  ›  技术社区  ›  Renjith

<jsp:setProperty>和直接设置值之间的差异

  •  0
  • Renjith  · 技术社区  · 8 年前

    我试图研究“jsp:useBean”,发现“jsp:hetProperty”和“jsp.getProperties”与useBean关联使用。 我的疑问是,当我们可以使用bean id直接调用setter和getter方法时,为什么需要这些操作标记。?

    我做了一个样本来测试它。

    package test.usebean.bean;
    
    public class UseBeanTarget {
    
        @Override
        public String toString() {
            return "UseBeanTarget [userName=" + userName + ", password=" + password
                    + "]";
        }
    
    
        private String userName;
        private String password;
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
    
    
        public String displayName(){
            return userName;
        }
    
    }
    

    JSP:

    <jsp:useBean id="targetBean" class="test.usebean.bean.UseBeanTarget"></jsp:useBean>
    <jsp:setProperty property="userName" name="targetBean" value="Renjith"/>
    <jsp:setProperty property="password" name="targetBean" value="ren@1234"/>
    
    <h2>
    Set using setProperty
    <br />
    <%= targetBean %>
    </h2>
    <hr />
    <% 
    targetBean.setUserName("Renjith_Direct");
    targetBean.setPassword("ren$1234");
    %>
    <h2>
    After setting the properties directly
    <br />
    <%= targetBean.getUserName() %>
    <br />
    <%= targetBean.getPassword() %>
    </h2>
    

    结果:

    Set using setProperty 
    
    UseBeanTarget [userName=Renjith, password=ren@1234]
    
    After setting the properties directly 
    
    Renjith_Direct 
    ren$1234
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   sope    8 年前

    是的,这两种方法都能很好地工作,但通常不允许在JSP文件中使用java代码。使用JSP标记,而不是使用java代码 <% %> 标记保留了JSP文件的XML格式,并使代码更具可读性。