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]