我需要在给定的数字范围之间打印偶数。使用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>
lowerLimit
和upperLimit
打印正确,但当我添加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中有没有其他替代方法可以解决这个问题?
答案 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
将打印所需的输出。
感谢大家的意见。