使用Java Bean的getproperty返回的值进行进一步处理

时间:2014-03-02 19:37:59

标签: java javabeans

我需要在给定的数字范围之间打印偶数。使用bean中的setter设置上限和下限。以下是我正在使用的代码:

package com.bean.animesh;

public class classOfBean implements java.io.Serializable {
private int lowerLimit;
private int upperLimit;
public List<Integer> evenList;

public classOfBean() {

}
public int getLowerLimit() {
    return lowerLimit;
}
public int getUpperLimit() {
    return upperLimit;
}
public void setLowerLimit(int lowerLimit) {
    this.lowerLimit = lowerLimit;
}
public void setUpperLimit(int upperLimit) {
    this.upperLimit = upperLimit;
}
public void setEvenList() {
    List<Integer> evenNumbers = new ArrayList<Integer>();
    for (int i = getLowerLimit(); i <= getUpperLimit(); ++i) {
        evenNumbers.add(i);
    }
    this.evenList = Numbers;
}
public List<Integer> getEvenList() {
    return evenList;
}
}

这是JSP页面:

<jsp:useBean id="evens" class="com.bean.animesh.classOfBean" scope="session">
<jsp:setProperty name="evens" property="lowerLimit" param="lower"/>
<jsp:setProperty name="evens" property="upperLimit" param="upper"/>
<jsp:setProperty name="evens" property="evenList"/>
</jsp:useBean>

<p>Lower Limit: 
    <jsp:getProperty name="evens" property="lowerLimit"/>
</p>

<p>Upper Limit: 
    <jsp:getProperty name="evens" property="upperLimit"/>
</p>

<p>The list:
    <jsp:getProperty name="evens" property="evenList"/>
</p>

lowerLimitupperLimit打印正确,但当我添加evenList的代码时,我总是收到此错误Can't find a method to write property 'evenList' of type 'java.util.List' in a bean of type 'com.bean.animesh.classOfBean'

新编辑:

我编辑了bean的方法,其中方法返回字符串而不是整数列表。现在我没有收到任何错误,但是当我通过方法打印返回的值时,我得到null。 我怎么能得到偶数列表呢?

public void setEvenList(String evenList) {
    List<Integer> evenNumbers = new ArrayList<Integer>();
    for (int i = getLowerLimit(); i <= getUpperLimit(); ++i) {
        if (i%2 == 0) {
            evenNumbers.add(i);
        }
    }
    String listString = evenNumbers.toString();
    listString = listString.substring(1, (listString.length())-1);
    System.out.println(listString);
    this.evenList = listString;
}
public String getEvenList() {
    return evenList;
}

我做错了什么? Java bean中有没有其他替代方法可以解决这个问题?

2 个答案:

答案 0 :(得分:0)

setEvenList必须采用getEvenList返回的相同类型的参数。这是标准的bean练习。

答案 1 :(得分:0)

通过更改bean方法,setEvenList和getEvenList返回一个String而不是像这样的整数列表:

public void setEvenList(String listString) {
    List<Integer> evenNumbers = new ArrayList<Integer>();
    for (int i = getLowerLimit(); i <= getUpperLimit(); ++i) {
        if (i%2 == 0) {
            evenNumbers.add(i);
        }
    }
    listString = evenNumbers.toString();
    listString = listString.substring(1, (listString.length())-1);
    System.out.println(listString);
    this.evenList = listString;
}
public String getEvenList() {
    return evenList;
}

并使setProperty的{​​{1}}和getProperty如下:

evenList

将打印所需的输出。

感谢大家的意见。