Может кто подскажет как проверить input поля с помощьй struts — validate, причем поля заранее не заданы (формируются динамически), вобщем поля — классы String в ArrayList. Проверка самая простая — заполенено ли поле или нет, проверка должна быть на стороне клиента, т.е. метод validate использовать нельзя
16.02.06 22:48: Перенесено модератором из 'Работа: Поиск и Предложение' — Кодт
_P_>Может кто подскажет как проверить input поля с помощьй struts — validate, причем поля заранее не заданы (формируются динамически), вобщем поля — классы String в ArrayList.
Проверить такую форму _автоматически_ — с помощью Struts-validate без использования метода validate в Action — можно. Но проверка все-равно будет на стороне сервера, даже если JavaScript подключите. Т.е. вместо popup-окошечка с ошибками вы получите сообщения, которые нужно выводить с помощью <html:errors/> (По крайней мере, Struts 1.2.7 ведет себя так. Может это баг, а может и руки.сис — поправьте тогда

)
Маленький пример:
JSP:
<html:errors/>
<html:form action="/actions/manageModules">
<logic:iterate id="module" name="modules" property="list" indexId="index">
<bean:write name="module" property="displayName"/>
<html:text name="module" property="developer" indexed="true"/><br>
</logic:iterate>
</html:form>
Form-bean:
public class Modules extends ValidatorForm {
...
public ConcreteModule[] getList(){
return list;
}
public ConcreteModule getModule(int index){
return list[idnex];
}
}
public class ConcreteModule {
...
public String getDisplayName(){...}
public String getDeveloper(){...}
public void setDeveloper(String d){...}
}
validation.xml:
<formset>
<form name="modules">
<field property="developer" indexedListProperty="list" depends="required,maxlength">
<arg key="listing.developer" position="0"/>
<arg name="maxlength" key="${var:maxlength}" resource="false" position="1"/>
<var>
<var-name>maxlength</var-name>
<var-value>255</var-value>
</var>
</field>
</form>
</formset>
struts-config.xml:
...
<form-beans>
<form-bean name="modules" type="package.Modules"/>
</form-beans>
<action-mappings >
<action
input="/forms/listModules.jsp"
name="modules"
parameter="operation"
path="/actions/manageModules"
scope="request"
type="package.ManageModulesAction"/>
</action-mappings>
...
В ManageModulesAction метод validate не используется.
Y>Проверить такую форму _автоматически_ — с помощью Struts-validate без использования метода validate в Action — можно.
Y>В ManageModulesAction метод validate не используется.
Прошу прощения, запамятовал
Имелся ввиду конечто метод validate из Form-bean, и что его не придется переопределять.