我们应该为 bean 设置 java getter 而后面没有实际的 属性 吗?

Should we have java getter for bean without actual property behind it?

为 属性 使用 getter 方法是否是一个好习惯,而实际 属性 未在 bean 中定义。例如,假设我有一个 bean class,如下所示: 网站 Bean:

public class Website
{
    private string name;

    public string getName() {
     return name;
    }

    public string getUrl() {
      return "http://" + name + "-env.organization.com";
    }   
}

假设我正在 struts 上使用此 class,如下所示: Index.jsp:

        <logic:present name="Website" property="url">
            <li><a href="<bean:write name="Website" property="url"/>" class="webAdress" target="_blank"><bean:write name="exhibitor" property="url"/></a></li>
        </logic:present>

所以我的问题是: 在 jsp 文件中像这样使用 url 是一个很好的做法,而我们在它后面没有任何 属性 绑定。我们是否发现其中有任何问题或它完全可以像这样使用?

编辑:将 return 类型更改为 getUrl()

的字符串

getUrl()方法就完全OK了。

对于外界,您的网站 class 有一个名为 url 的 属性,无论 class 如何回答这个 属性 的问题 -那是你 class 的私有内部结构。 Bean 属性完全不限于只传递一个字段值。

如果您要实现 setUrl() 方法,事情可能会变得有点复杂,因为您的调用者期望 getUrl() 方法 return 他们存储的值 setUrl().