database 在 database.xml
(<database>  <user username="user"
        password="pass"
        fullName="John Q. User"
     fromAddress="[email protected]">     <subscription host="mail.yahoo.com"     type="imap"
                   username="jquser"     password="foo"/>
     <subscription host="mail.hotmail.com"   type="pop3"
                   username="user1234"   password="bar"/>  </user></database>) 
中定义,并在struts-config.xml 中 plug-in
(<plug-in className="org.apache.struts.webapp.example.memory.MemoryDatabasePlugIn">
    <set-property property="pathname" value="/WEB-INF/database.xml"/>
  </plug-in>)

解决方案 »

  1.   

    那 name="database" 是否可以改成 name="database1" 或 name="database2"?
      

  2.   

    有请哪位讲解database的运行机制?虚心听课中...
      

  3.   

    在dataabase.xml中写入要用到的属性,并且在struts-config.xml中plug-in,
    当应用程序启动的时候就会把database.xml中的内容放到内存中,需要的时候
    就可以取出来。至于这一步是怎么实现的,请看"org.apache.struts.webapp.example.memory.MemoryDatabasePlugIn.java"。
      

  4.   

    再次谢谢manyroads(流水……小飞侠) 的解答,那么<logic:notPresent name="database" scope="application">中name的值"database"是dataabase.xml这个xml文件的名称还是指dataabase.xml中dataabase这个标记的名称?
      

  5.   

    错了,是里面的标记名称,太心急了,sorry.^-^
      

  6.   

    请问manyroads(凉茶不二碗),何以证明是database.xml中的标记名称呢?
      

  7.   

    你只要修改了里面的标记名称,然后页面就会出现
    <logic:notPresent name="database" scope="application">
    后面的错误信息.
    当然如果你修改了文件名的话,在plug-in处就已经不能加载<database>了,
    当然就不能找到database啦.
    所以从本质上来说是标记的名称.
      

  8.   

    多谢manyroads(凉茶不二碗)的回答,看来的确是得好好分析一下这个example的程序,看似简单,其实许多精妙之处,值得研究!