You need to configure your message resources through the struts-config.xml -
init parameters in the web.xml don't work in Struts 1.2

http://struts.apache.org/userGuide/configuration.html#resources_config

So in your case you need something like the following in your
struts-config.xml....

<message-resources parameter="..."
         factory="org.example.MyMessageResourceFactory " />

You can use the "parameter" element for any configuration value you want -
thats the argument passed to the factory's createResources() method. I
believe you can also use <set-property> elements for other config values -
although I've never actually tried it out.

Niall

----- Original Message ----- 
From: <[EMAIL PROTECTED]>
Sent: Thursday, June 16, 2005 8:03 PM


> I have a project where I want to use the Struts Validator. By default the
> error messages are read from a properties file. However I'm required to
> read the error messages from a database. The question is how do I do this?
> I found this article
> http://www.informit.com/articles/article.asp?p=101174&rl=1, from the
> "Struts Kick Start" book, which shows how to do this but it doesn't seem
> to work.
>
> Here is what I did. First I created a MessageResourcesFactory that creates
> my version of  MessageResources:
>
> import org.apache.struts.util.MessageResources;
> import org.apache.struts.util.MessageResourcesFactory;
>
> public class MyMessageResourceFactory extends MessageResourcesFactory {
>
>         public MessageResources createResources(String arg0) {
>                 return new DbMessageResources(this, arg0);
>         }
> }
>
> Next I created my version of MessageResources:
>
> import java.util.Locale;
> import org.apache.struts.util.MessageResources;
> import org.apache.struts.util.MessageResourcesFactory;
>
> public class DbMessageResources extends MessageResources implements
> java.io.Serializable
>  {
>
>         public MessageResource(MessageResourcesFactory arg0, String arg1)
> {
>                 super(arg0, arg1);
>         }
>
>         public String getMessage(Locale arg0, String key) {
>                 // based on locale and key, retrieve message from database
>                 // for this example just return the key
>                 return key;
>         }
>
> }
>
> Lastly, the article says to add these parameters ("application" and
> "factory") to the ActionServlet config in web.xml file to tell Struts to
> use my implementation.
>
>   <servlet>
>     <servlet-name>action</servlet-name>
>     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
>     <init-param>
>       <param-name>config</param-name>
>       <param-value>/WEB-INF/struts-config.xml</param-value>
>     </init-param>
>       <param-name>application</param-name>
>       <param-value>org.example.DbMessageResources</param-value>
>     </init-param>
>     <init-param>
>       <param-name>factory</param-name>
>       <param-value>org.example.MyMessageResourceFactory </param-value>
>     </init-param>
>     <load-on-startup>2</load-on-startup>
>   </servlet>
>
> Trouble is this code never gets called. I'm on Struts 1.2.7. Is this the
> right way to get Struts to use my version of MessageResources, or is there
> a different way to do this now? I've searched for more documentation
> regarding reading resources from the database, but haven't found much. Any
> hints, tips, or references would be greatly appreciated.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to