【问题标题】:No getter method available for property for bean under name名称下的 bean 的属性没有可用的 getter 方法
【发布时间】:2013-09-24 15:13:02
【问题描述】:

Struts (1.38) 菜鸟,我收到以下错误: 名称 hsForm 下的 bean 的属性 hs.hasRelationshipToTeam 没有可用的 getter 方法。 有人告诉我在 HSDivForm 中创建一个 getHs 和 setHs 方法,但这就是问题所在吗?或者我该怎么做?

我的豆子:

public class HS extends Entry implements Serializable,Cloneable  {
  private Boolean hasRelationshipToTeam = false;

  public boolean isHasRelationshipToTeam() 
  { return hasRelationshipToTeam; }

  public void setHasRelationshipToTeam(boolean hasRelationshipToTeam) 
  { this.hasRelationshipToTeam = hasRelationshipToTeam; }
}

我的表格:

import my.bean.HS;

public class HSForm extends ActionForm
{
  private HS hs = new HS();

  public HSForm() 
  { super(); }
}

我的jsp:

<html:form styleId="HSDivForm" action="/disclosure/hsAction" >
<table>
  <tr id = "q-rel">
    <td colspan="2" align="center">
      <br />
      Is there a team relationship?
      <br />
      Yes<html:radio property="hs.hasRelationshipToTeam" value="yes" />    
      No<html:radio property="hs.hasRelationshipToTeam" value="no" />
    </td>
  </tr>
</table>
</html>

【问题讨论】:

  • Beans 与getset 一起使用。另外,您在isHasRelationshipToTeamy 中有y
  • @SotiriosDelimanolis bean 也可以使用 is 作为前缀 - 只要属性是 boolean
  • 对不起,你不知何故进入了那里。 . .它在我的代码上是正确的,但仍然没有运气。

标签: java jsp struts-1


【解决方案1】:

那是因为你的属性类型:

private Boolean hasRelationshipToTeam = false;

当您将属性声明为 Boolean 时,Introspector 不会将其视为原始 boolean,因此它需要 getXXXsetXXX

如果您的属性是boolean 原始类型,则Introspector 需要isXXXgetXXX,并与setXXX 方法捆绑在一起。

getXXXisXXX 是您的getter 方法,而setXXX 是您的setter 方法。

我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    将你的吸气剂更改为

     public boolean isHasRelationshipToTeam() 
      { 
       return hasRelationshipToTeam;
      }
    

    以前是

    isHasRelationshipToTeamy()   y is there in the end<----
    

    我也怀疑你的声明

      private Boolean hasRelationshipToTeam = false;  
    

    改成

      private boolean hasRelationshipToTeam = false; //boolean is primitive here
    

    对于普通的java类,你可以给它起任何名字,并返回任何variable

    但是beans有一个标准格式,你不能改变它们。

    【讨论】:

    • 对不起,你不知何故进入了那里。 . .它在我的代码上是正确的,但仍然没有运气。
    • Boolean 呢?你为什么要包装?改成primitive,试试看。
    • 我认为 bean 规范内省了方法,而不是私有实例——毕竟,方法不必具有底层值,它们可以返回计算值。转换应该隐式发生,不是吗?
    猜你喜欢
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 2015-03-03
    • 1970-01-01
    相关资源
    最近更新 更多