Основная проблема заключается в том, что я использую Struts 1.0.2. Но я не могу его изменить. У меня проблема с атрибутом arraylist в моем jsp. Дисплей работает нормально, но я не получаю данные, созданные в arraylist в моей форме. В режиме отладки я вижу, что он никогда не приходит к getter моей собственности. Я нашел 2 решения в struts 1.0, но я не могу заставить их работать.Невозможно получить ввод данных в jsp, от jsp до формы, используя логику: итерация
ArrayList в моем ActionForm:
private ArrayList<AccountScreenBean> accountsScreen = new ArrayList<AccountScreenBean>();
Класс декларирование объекта счета в Arraylist:
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: Inv Алид индексируется свойство 'accountsScreen [$ {индекс}]
У вас есть решение одной из этих проблем или другой способ сделать это?
Попробуйте использовать одиночные кавычки - 'property = '<% =" accountsScreen ["+ index +"]. Bic "%>''. –
Это не работает лучше, но это не та же ошибка: «javax.servlet.jsp.JspException: метод getter для учетных записей свойств. Экран [1] .bic bean accScreen». accountsScreen - это имя стороны сервера, а bic имеет геттер, соответствующий стандартным правилам. Но accScreen - это имя jsp (в итерации логики struts), возможно, это лидерство. – jayjaypg22
Это означает, что этот синтаксис правильный, и вам нужно исправить имена. –