Ok. I read the OGNL spec and it looks like the way of using maps etc. is subtley different from Struts1. My JSP now looks like
<s:textfield name="attribute[#currentField.fieldname]"/> and the associated Action class has methods public void setAttribute(String key, Object value) public Object getAttribute(String key) The setAttribute method is still not being called (again, I have checked with debug print statements), but this time in the catalina log I get the following excepion messages along with a large stack trace --snip-- Apr 18, 2007 9:57:01 AM com.opensymphony.xwork2.util.InstantiatingNullHandler nullPropertyValue SEVERE: Could not create and/or set value back on to object ognl.NoSuchPropertyException: com.csc.event.delivery.controller.EventOverviewController.attribute [java.lang.IllegalAccessException: Class ognl.OgnlRuntime can not access a member of class com.csc.event.delivery.controller.EventOverviewController with modifiers "private"] --snip-- It looks like it wants the actual attribute member to be public, but I really dont want to do that... Any help is much appreciated, James Lance <[EMAIL PROTECTED]> wrote on 17/04/2007 06:54:37 PM: > Do you have a getValue(String key) method? > I am not a s2 user but I have read the OGNL spec so sorry if I'm wrong > but OGNL needs > public PropertyType getPropertyName(IndexType index) > and public void setPropertyName(IndexType index, PropertyType value) > > http://www.ognl.org/2.6.9/Documentation/html/LanguageGuide/indexing. > html#N10189 > > James Navin wrote: > > Hi all, > > > > A system I am developing requires forms to be generated dynamically at > > runtime based on data stored in a database. I have read that it is possible > > to use map-backed forms in Struts1 to achieve this using something of the > > form '<s:textfield name="value(#currentField.fieldName)"/>' where the > > associated Action class has a method of the form 'public void > > setValue(String key, Object value)', resulting in name-value pairs being > > submitted to the Action class. > > > > Is this possible to achieve in Struts2? I have not been able to make it > > work. When I use the above expression for the name attribute the setValue > > method is never called (I have checked this with a few debug print > > statements), but no exception is thrown either. It just appears that > > nothing happens. > > > > Is this something I am doing wrong, or is there some other way to do this > > in Struts2, or is it a bug? > > > > I am using Struts 2.0.6 with Java 1.5.3, Tomcat 5.5 and Internet Explorer > > 6. > > > > Thanks a lot in advance, > > > > James > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]