I would use two things: a Data Transfer Object(DTO) and BeanUtils.copyProperties(). I would use a DTO because I do not want to pass a view component like ActionForm directly to a model component like your baseDAO. The DTO might look something like this:
public class Author { String lastName; } Then I would use BeanUtils.copyProperties() to copy data from the ActionForm to the DTO. The signature for insertAuthor would then be: public void insertAuthor(Author author) throws DaoException ------------------------------------------- 1) Using an ActionForm: Create your ActionForm that you call AuthorForm. Then in your Action's execute(...), you could do this: AuthorForm authorForm = (AuthorForm) form; Author author = new Author(); BeanUtils.copyProperties(author, authorForm); try { baseDAO.insertAuthor(author); } catch(Exception ex) { ex.printStackTrace(); } In struts-config.xml, you would have: <form-bean name="authorForm" type="org.apache.struts.action.ActionForm"> <form-property name="lastName" type="java.lang.String"/> </form-bean> 2) Using a DynaActionForm: Almost the same thing, but do not create a separate AuthorForm. DynaActionForm authorForm = (DynaActionForm) form; Author author = new Author(); BeanUtils.copyProperties(author, authorForm); try { baseDAO.insertAuthor(author); } catch(Exception ex) { ex.printStackTrace(); } In struts-config.xml, you would have: <form-bean name="authorForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="lastName" type="java.lang.String"/> </form-bean> -----Original Message----- From: Ricky [mailto:[EMAIL PROTECTED] Sent: Monday, December 08, 2003 1:44 AM To: Struts Users Mailing List Subject: about using DynaActionForm in SQL Maps framework with Struts... hi, there, has anybody tried to use SQL Maps framework with struts? i am now using the struts with SQL Maps framework, all is convenient. i have tried to use ActionForm instead of create a new javaBean passed to SQL Map parameter. just like this: AuthorForm authorForm = (AuthorForm) form; try { baseDAO.insertAuthor(authorForm); } catch(Exception ex) { ex.printStackTrace(); } now, i have a query about using DynaActionForm in it... assume that i am using DynaActionForm and config in struts-config.xml, What should i do to pass the dynaformBean to SQL Map parameter? some code like these, but it threw some exception... DynaActionForm authorForm = (DynaActionForm) form; try { baseDAO.insertAuthor(authorForm); } catch(Exception ex) { ex.printStackTrace(); } and in my BaseDAO.java : public void insertAuthor(DynaActionForm author) throws DaoException { try { javaDIYDaoManager.startTransaction(); authorDao.insertAuthor(author); javaDIYDaoManager.commitTransaction(); } catch (DaoException e) { try { javaDIYDaoManager.rollbackTransaction(); } catch (Exception e2) { /* ignore */} throw ( (DaoException) e.fillInStackTrace()); } } it threw some exception: Error executing 'insertAuthor' in 'com/dao/sql/Author.xml'. Check the Parameter Map (or inline parameters). Check the 'author_name' property. Cause: com.ibatis.common.beans.BeansException: There is no READABLE property named 'author_name' in class 'org.apache.struts.action.DynaActionForm' com.ibatis.common.beans.BeansException: There is no READABLE property named 'author_name' in class 'org.apache.struts.action.DynaActionForm' --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]