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]