【发布时间】:2015-04-14 10:08:22
【问题描述】:
主要问题是我使用的是 Struts 1.0.2。但我无法改变它。 我在我的 jsp 中使用 arraylist 的属性时遇到问题。显示工作正常,但我没有在我的表单中的 arraylist 中实例化数据。在调试模式下,我发现它永远不会涉及到我的属性的 getter。我在 struts 1.0 中找到了 2 个解决方案,但我无法使其工作。
我的 ActionForm 中的数组列表:
private ArrayList<AccountScreenBean> accountsScreen = new ArrayList<AccountScreenBean>();
Arraylist中Account对象的类声明:
public class Account implements Serializable, Cloneable {
private String bic;
public String getBic() {
return bic;
}
public void setBic(final String newBic) {
bic = newBic;
}
}
我的jsp中的调用:
<logic:iterate name="BankAccountsActionForm" property="accountsScreen" id="accScreen" indexId="index">
<html:text name="accScreen" property="<%="accountsScreen["+index+"].bic"%>" size="18" maxlength="11" onkeyup="suivant(this,'partPays',11,'accScreen')"
styleClass="inscCB_SaisieTexte" />
</logic:iterate>
控制台错误:
weblogic.servlet.jsp.CompilationException: 编译 JSP 失败 /jsp/Contents/bankAccountsContent.jsp bankAccountsContent.jsp:171:81: 无法识别此属性。 " 尺寸="18" maxlength="11"。
accountsScreen 加下划线
我还在我的 jsp 中尝试了另一种方式:
<html:text name="accScreen" property="accountsScreen[${index}].bic" size="18" maxlength="11"
onkeyup="suivant(this,'partPays',11,'accScreen')"
styleClass="inscCB_SaisieTexte" />
这次控制台错误是:
java.lang.IllegalArgumentException:无效的索引属性 'accountsScreen[${index}]'
您有解决这些问题的方法或其他方法吗?
【问题讨论】:
-
尝试使用单引号 -
property='<%="accountsScreen["+index+"].bic"%>'。 -
它没有更好的工作但它不是同样的错误:'javax.servlet.jsp.JspException:没有属性accountsScreen [1] .bic的bean accScreen'的getter方法。 accountsScreen 是服务器端名称, bic 有一个遵循标准规则的 getter。但是 accScreen 是 jsp 名称(在 struts 逻辑迭代中),也许它是一个线索。
-
表示这个语法是正确的,需要修正名字。
-
我尝试了一些变化,但我找不到我缺少的东西。