On Mon, 2004-12-20 at 16:22 -0600, Joe Germuska wrote: > At 10:55 PM +0100 12/20/04, Peter Maas wrote: > >If I want to configure parameters for a certain action in a > >non-hardcoded fashion; what would be the way to go? > > > >I see: > >- people using the application.properties resources file... seems not > >o.k. to me... this is where I store texts for the interface > >- people using attributes stored in servlet context > >- people using properties set using the <set-property> element retrieved > >by custom action mappings > >- people using properties set using the <set-property> element retrieved > >by custom action mappings (???? I can not find a good example for this) > > > >To me the <set-property> seems te most logical to use (since it also > >feature xdoclet support). > > > >But from there, where do I go? How do I access the variable? > >I have seen the example using a custom ActionMapping, but I found it a > >bit strange that I can only define this in the <action-mappings> > >element... i.e. globally over all my actions? > > > >Then there is ActionConfig... which sounds like what I need... but how > >do I use it to retrieve properties? anyone got an example? > > ActionMapping extends ActionConfig. Conventionally, Action classes > cast ActionMapping to a specific subclass which is known to have the > properties they expect to be passed in. > > Something like this: > > public ActionForward execute(...) { > > String config = ((MyActionMapping) mapping).getConfigProperty(); > } > > and > > <set-property property="configProperty" value="foobar" /> > > Note that if you only need one value, the "parameter" property of > ActionMapping is the easiest way to go. Also, just last week, I > committed changes that allow you to access a map of arbitrary > properties in an ActionConfig, if you're willing to use a nightly > build of Struts. This should eliminate most cases for actually > subclassing ActionMapping. >
When I do this I get a runtime error (I can understand that the actionmapping does not have this property...): //----------- stacktrace--------- Dec 20, 2004 11:34:30 PM org.apache.commons.digester.Digester startElement SEVERE: Begin event threw exception java.lang.NoSuchMethodException: Bean has no property named cacheTimeout at org.apache.commons.digester.SetPropertyRule.begin(SetPropertyRule.java:192) at org.apache.commons.digester.Rule.begin(Rule.java:200) at org.apache.commons.digester.Digester.startElement(Digester.java:1273) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:485) at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentPars ----------- stacktrace---------// Do I have to specify a custom actionmapping to get this done? Can this be specified per action or do I have to specify it globally in the <action-mappings> parent...? > Joe > > -- Peter Maas Application Architect / Streaming Noterik Multimedia BV Prins Hendrikkade 120 1011 AM Amsterdam The Netherlands Tel: +31 (0)205929966 Fax: +31 (0)204688405 Gsm: +31 (0)624687952 Web: www.noterik.nl -------------------------------------- Take a look at our streaming solutions: http://www.streamedit.com/demo.html Get firefox: http://www.mozilla.org/products/firefox/ --------------------------------------- :wq! --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]