我需要在給定範圍的數字之間打印偶數。上下限是使用bean中的setter設置的。以下是我使用的代碼:使用由Java Bean的getproperty返回的值進行進一步處理
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中是否有其他解決方案來解決這個問題?
您的Bean中沒有名爲'getEvenList'的getter - 您的方法名爲'getAllNos'。改變你的JSP或你的Bean。請始終使用[Java命名約定](http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-135099.html#367) - 您有一個位於'lowerCamelCase'中的類和一個變量'PascalCase';這會讓你的代碼難以閱讀。 –
@BoristheSpider 我編輯了這個問題。你可能會再次經歷它。 –