dynamic form field creation from Database with DynaFormBean

2002-11-14 Thread Vijay Balakrishnan
HI,

I have the following DynaFormBean defined in tiles-def.xml:

form-bean  name=answerDetailsForm
  dynamic=true
  type=org.apache.struts.action.DynaActionForm
  form-property name=fieldIdMemberIds
type=java.lang.String[] /
  form-property name=questionName type=java.lang.String
/

/form-bean
 
I am using the following code excerpt from the form which creates the
%=name% dynamically
based on values returned from the database.I want to use DynaFormBeans or a
sub-class of it 
or DynaValidatorForm to make sure that the field is required and one of the
radio buttons for 
each field is checked. How can I do that ?




%
 for (int i1=0;i1  fields.length; i1++) {
Field field = (Field)fields[i1];
long fieldId = field.getFieldId();
String name = fieldValue;
String member = memberId + memberId;
name = name + fieldId + member;


%
tr align=right
   tdinput type=hidden name=fieldIdMemberIds value=%=name %
//td
   html:errors property=%=name% /
   td%=field.getFieldName()% /td
   %
   Collection colFieldValues =
FieldValuesHandler.getFieldValues(fieldId);
   Iterator iterFieldValues = colFieldValues.iterator();
   while (iterFieldValues.hasNext()) {
FieldValues fieldValue = (FieldValues)
iterFieldValues.next();

%

tdinput type=radio name=%=name% value=%=fieldValueDflt%
%if (fieldValueAnswer.equals(fieldValueDflt)) {%checked %}%
/%=fieldValueDflt%/td
%
 }
 %

Thanx in advance,
Vijay

--
To unsubscribe, e-mail:   mailto:struts-user-unsubscribe;jakarta.apache.org
For additional commands, e-mail: mailto:struts-user-help;jakarta.apache.org




dynamic form field creation from Database with DynaFormBean

2002-11-14 Thread Vijay Balakrishnan
HI,
I am not sure if this reached the list the first time round.
I have the following DynaFormBean defined in tiles-def.xml:

form-bean  name=answerDetailsForm
  dynamic=true
  type=org.apache.struts.action.DynaActionForm
  form-property name=fieldIdMemberIds
type=java.lang.String[] /
  form-property name=questionName type=java.lang.String
/

/form-bean
 
I am using the following code excerpt from the form which creates the
%=name% dynamically
based on values returned from the database.I want to use DynaFormBeans or a
sub-class of it 
or DynaValidatorForm to make sure that the field is required and one of the
radio buttons for 
each field is checked. How can I do that ? 




%
 for (int i1=0;i1  fields.length; i1++) {
Field field = (Field)fields[i1];
long fieldId = field.getFieldId();
String name = fieldValue;
String member = memberId + memberId;
name = name + fieldId + member;


%
tr align=right
   tdinput type=hidden name=fieldIdMemberIds value=%=name %
//td
   html:errors property=%=name% /
   td%=field.getFieldName()% /td
   %
   Collection colFieldValues =
FieldValuesHandler.getFieldValues(fieldId);
   Iterator iterFieldValues = colFieldValues.iterator();
   while (iterFieldValues.hasNext()) {
FieldValues fieldValue = (FieldValues)
iterFieldValues.next();

%

tdinput type=radio name=%=name% value=%=fieldValueDflt%
%if (fieldValueAnswer.equals(fieldValueDflt)) {%checked %}%
/%=fieldValueDflt%/td
%
 }
 %


I have the following code in my action class and call validate(..) method
from the execute() method:

public ActionForward validate(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws
ServletException {
boolean validated = true;
DynaActionForm dynaForm = (DynaActionForm) form;
String[] fieldIDMemberIds = (String[])
dynaForm.get(fieldIdMemberIds);
for (int i = 0; i  fieldIDMemberIds.length; i++) {
String fieldIdMemberId = fieldIDMemberIds[i];
String answer = request.getParameter(fieldIdMemberId);
if (answer == null || answer.length()= 0) {

ActionErrors errors = new ActionErrors();
ActionError newError = new
ActionError(validate.error.required,fieldIdMemberId);
errors.add(ActionErrors.GLOBAL_ERROR, newError);
saveErrors(request, errors);
// Return back to the previous state
validated = false;

}
}
if (validated) {
return null;
}  else {

   return mapping.getInputForward();
}
}


Unfortunately, when i try to use html:errors /, it just prints out the
last error only.

Thanx in advance,
Vijay


--
To unsubscribe, e-mail:   mailto:struts-user-unsubscribe;jakarta.apache.org
For additional commands, e-mail: mailto:struts-user-help;jakarta.apache.org