| 注册 |  设为首页 | 加入收藏
EasyJF官方论坛->EasyJF专区->EasyJWeb->贴子详细信息 
 
主题:EasyJWeb配置文件详细介绍 发表时间: 2007-12-04 02:48
  [引用回复]

EasyJWeb支持零配置,同时用户也可以通过配置文件来定义EasyJWeb中的各个部件,从而实现更加灵活的功能。一个完整的easyjf-web.xml文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<easyjf-web xmlns="http://www.easyjf.com/schema/easyjf/web"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.easyjf.com/schema/easyjf/web
 http://www.easyjf.com/schema/easyjf/web/easyjf-web-0.0.1.xsd ">
<!—框架基本参数配置—>
<framework-setting>
  <template-base>/WEB-INF/views/</template-base>
  <property name="com.easyjweb.debug">true</property>
  <init-app>
   <app-class init-method="start" destroy-method="stop">com.easyjf.blog.logic.AutoHtmlGenerater</app-class>
  </init-app>
<!—拦截器—>
  <interceptorsp>
   <app-class name="before" method="">com.easyjf.intercept.CommInterceptor</app-class>
  </interceptorsp>
<!—错误处理器—>
  <error-handler>
   <app-class exception="" path="">com.easyjf.intercept.CommInterceptor</app-class>
  </error-handler>

 </framework-setting>
<!—导入其它配置文件—>
  <import resource="mvc-bbs.xml" />

<!—模块Action配置—>
 <modules inject="byType">
  <module path="/user" action="com.easyjf.action.UserAction" validate="true" view="" inject="byType" 
autoToken="true" alias="account" form="userForm" defaultPage="/user/user.xml" scope="">
   <page name="user" url="/user/user.html" type="template" contentType="" />
  </module>
 </modules>
<!—全面页面模板配置—>
 <pages>
   <page name="user" url="/user/user.html" type="template" contentType="" />
 </pages>
<!—表单配置—>
 <forms>
  <form name="userForm" serverValidate="" alertType="" bean="" clientValidate="" event="">
   <property name="" initial="" notNull="" size="" type="" event="">
  </form>
 </forms>
<!—业务组件配置—>
 <beans>
  <bean name="springContainer" class="org.springframework.web.context.support.XmlWebApplicationContext">
    <property name="configLocations">
     <list>
      <value>WEB-INF/classes/application.xml</value>
     </list>
    </property>
  </bean>

  <bean name="innerSpringContainer" class="com.easyjf.container.impl.SpringContainer">
   <property name="factory" ref="springContainer" />
  </bean>
 </beans>

<!—ajax参数配置—>
<ajax>
<services allowName=””  denyName=””>
<service name=”” >
< include method=””/>
< exclude method=””/>
</service>
</services>
<convert name=””>
< include property=””/>
< exclude property=””/>
</convert>
</ajax>

</easyjf-web>

EasyJWeb框架的默认配置文件是easyjf-web.xml文件,easyjf-web.xml的根节点是easyjf-web,它有framework-setting、modules、pages、beans、import*、ajax等几个子节点。
framework-setting
 framework-setting节点主要是包含框架初始化时需要加载的变量、线程、拦截器、以及模板路径和需要引入的其它配置文件等。它有init-app、interceptorsp、error-handler、template-base、property等子节点。
 init-app子节点包含框架初始化程序的配置信息。该节点包含多个app-class子节点,每个代表一个初始化程序。app-class节点的init-method属性定义程序的初始化方法,destroy-method属性定义程序的销毁方法。该节点的文本是初始化程序的包路径。
 interceptorsp节点包含的是拦截器配置信息。该节点同样包含多个app-class子节点,每个app-class代表一个拦截器。app-class节点的name属性是拦截器的名字,method是调用拦截器的方法。
 error-handler节点包含错误处的配置信息,它以拦截器为基础,若配置了error-handler,则必须配置相应的拦截器。
 template-base配置的是程序的模板文件放置的路径,该节点只能有一个。
 property节点定义了EasyJWeb框架初始化时加载的变量,如文件上传的大小限制,该节点可以有多个。
 property节点的各元素值如下所示:
 com.easyjweb.debug:定义EasyJWeb的工作模式,true或false。
 com.easyjweb.maxUploadFileSize:定义上传文件的最大值,以k为单位。
 com.easyjweb.uploadSizeThreshold:定义上传文件缓冲值,以k为单位。
 com.easyjweb.maxDirectJumpToActionTimes:定义EasyJWeb的全局跳转次数。
 com.easyjweb.defaultActionPackages:定义EasyJWeb自动扫描的包,多个包之前以逗号(“,”)分隔。

示例,在某电子商务网站,开发环境中的EasyJWeb配置。

<framework-setting>
  <property name="com.easyjweb.debug">true</property><!--调试模式,每次加载都会重新初始化EasyJWeb-->
  <property name="com.easyjweb.maxUploadFileSize">51200</property><!--最大上传文件为51200kb-->
  <property name="com.easyjweb.uploadSizeThreshold">512</property><!--上传文件缓存值-->
  <property name="com.easyjweb.defaultActionPackages"><!--设置自加Action扫描的路径-->
com.easyjf.core,com.easyjf.security,com.easyjf.necton,com.baijiahui.mvc
  </property>
 </framework-setting>

import元素
 import元素用来导入另外一个EasyJWeb配置文件,一个配置文件中可以导入多个其它配置文件。该元素包含一个属性:resource,属性值为WEB-INF下的文件名或者以classpath开头的一个资源名。如下面的示例:

<import resource="mvc-bbs.xml" /><!--表示导入mvc-bbs.xml这个文件,等价于-->
 <import resource="WEB-INF/mvc-bbs.xml" />
 <import resource="classpath:/com/easyjf/core/easyjweb-mvc.xml"/><!--表示导入com.easyjf.core包下面的easyjweb-mvc.xml文件-->

modules
 modules节点是最重要的部分,包含了所有的访问模块。它的子节点module配置了访问模块,对应EasyJWeb的Module类。modules节点的属性inject定义了全局的注入方式。
 module节点有path、action、validate、view、inject、autoToken、alias、form、defaultPage、scope等属性。path是该模块的访问路径,如/hello.ejf对应的module的path是hello;action配置的是该模块的处理类,如com.easyjf.action.HelloAction;validate属性定义该module是否需要做数据验证,值为true或false;view配置的是模板路径前缀;inject配置的是该模块的注入方式,如byType等;autoToken定义了该模块是否需要自动加入防重复提交验证,值为true或false;alias是该模块的别名,多个别名使用逗号”,”作分隔,除了通过path来访问也可以通过alias定义的名字来访问;form是该模块对应的form,该属性值对应forms中的某一个form对应;defaultPage定义了该module的默认page名,即在不指定page时使用defaultPage配置的page;scope配置模板的初始化方式,也即生命周期,可以是request、session、prototype、singleton等几个值,转认为request。
 示例:
 A、EasyJWeb内置的easywidget模块,提供一些实用功能

<module path="/easywidget"
    action="com.easyjf.web.tools.widget.WidgetAction">
    <page name="calendar"
     url="classpath:com/easyjf/web/tools/widget/calendar.html"
     type="template" />
   </module>

 B、一个OA系统中的帐户模块

<module name="account" path="/account" scope="request"
    action="com.easyjf.oa.mvc.AccountAction" detaulsPage="list"
    inject="byType">
    <page name="list" url="/oa/accountList.html"
     type="template" />
    <page name="edit" url="/oa/accountEdit.html"
     type="template" />
   </module>

pages
 pages节点配置了全局的page对象。pages节点包含多个page节点。page节点有name、type、url、contentType这几个属性。name属性定义了该page的名字,可通过这个名字来查找该page;type定义了page的类型,可以是"html“、"template"、"action"等;url属性指定了该page对应的模板文件的路径;contentType定义该模板页的contentType。
 在EasyJWeb-1.0m1版本中未实现对全局Page的支持。

forms
 forms节点包含多个form节点,每个form定义一个表单。form节点有name、Initial、notNull、Size、Type、event这几个属性。
 该元素在EasyJWeb1.0m2中未使用。
 前面1-5个部件的元素解析是通过com.easyjf.web.config. XMLConfigFactory来完成的。
 
beans
 beans节点配置了需要加载的业务组件,类似spring里边的bean。这些bean会被加载到EasyJWeb的IOC容器中,供Action或其它Bean调用。beans节点下面包含多个bean节点,每个bean节点配置一个业务组件。
 对于Bean的解析是通过com.easyjf.web.config. BeanConfigReader这个类来完成的。
 该节点中的<bean>标签用来定义一个业务组件,<bean>元素的结构如下:

<bean name=" " class=" "  [scope=" "  factory-method="" inject=""] >
 <!—构造子注入—>
 <constructor-arg index="" type="" [value|ref=""]>
 [<value></value>|<ref></ref>|<list></list>]
 </ constructor-arg >
 <!—设值方法注入—>
 <property name ="" [value|ref=""]>
 [<value></value>|<ref></ref>|<list></list>]
 </property>
 </bean>

value节点或属性中的值为字符串,EasyJWeb在处理的时候会把其转换指定属性类型的值。
ref节点或属性中的值是容器中某一个业务组件的名称或id。所引用的业务组件可以在本配置文件中定义,也可以其它配置文件中定义,可以是EasyJWeb IOC容器中配置的Bean,也可以是Spring、Guice或EJB容器中定义的业务组件。
inject属性用来指定业务组件的自动注入方式,其值如下:
none:不自动注入,默认值;
bytype:按类型自动注入;
byname:按名称自动注入;
auto:自动按名称或类型自动注入。
scope属性用来指定业务组件的初始化方式及生命周期,其值如下:
singleton:整个容器中只创建一次这个Bean,这个是默认值。
prototype:每次都创建一个全新的Bean;
request:在Web应用环境下,每一次用户请求创建一次Bean;
session:在Web应用环境下,每一个用户会话创建一次Bean。
示例:
A、配置一个Spring容器

<bean name="springContainer"
   class="org.springframework.web.context.support.XmlWebApplicationContext">
   <property name="configLocations">
 <list>
     <value>WEB-INF/classes/application.xml</value>
   </list>
   </property>
  </bean>

B、把Spring容器加入到EasyJWeb超容器中

<bean name="innerSpringContainer"
   class="com.easyjf.container.impl.SpringContainer">
   <property name="factory" ref="springContainer"/>
  </bean>

ajax
 ajax节点用来定义EasyJWeb的ajax属性。EasyJWeb中内置了一个把业务组件发布成远程Javascript脚本对象的远程Web调用支持引擎,在使用到该功能的时候,可以通过EasyJWeb配置文件中的ajax节点来定制相关的属性。Ajax节点下包括一个<services>节点及多个convert节点,<services>节点中定义允许发布的业务组件,而<convert>用来指定POJO转换成Json对象时的属性。Ajax节点部分的的大致结构如下:

<ajax>
<services allowName=””  denyName=””>
<service name=”” >
< include method=””/>
< exclude method=””/>
</service>
</services>
<convert name=””>
< include property=””/>
< exclude property=””/>
</conv>rt>
</ajax>

 allowName用来定义允许对暴露的所有Bean名称,denyName用来定义不允许对外暴露的所有Bean名称。Include用来定义某一个业务组件中允许对外暴露的方法名称,而exclude用来定义某一个业务组件中不允许对外暴露的方法名称。
 对于ajax节点的解析是通过com.easyjf.web.ajax. AjaxConfigManager这个类来完成的。

EasyJWeb配置文件详解同时在EasyJF的wiki发布,并且会不断更新,如果需要查看最新版本,请到:http://wiki.easyjf.com/pages/viewpage.action?pageId=7110664

 

楼主: 天一
发表时间: 2007-12-04 02:48
    [引用回复]
太帅了
发言人: 222.183.186.** (匿名用户)  楼层:1
发表时间: 2007-12-04 08:01
    [引用回复]
为什么我的easyjf-web.xml中没有beans节点呀?
发言人: 123.115.202.** (匿名用户)  楼层:2
发表时间: 2008-06-25 02:40
    [引用回复]
beans节点不是必须的,如果你用easyjweb的容器来管理bean,就需要beans节点。
发言人: 222.210.218.** (匿名用户)  楼层:3
发表时间: 2008-07-17 11:59
    [引用回复]

mailserver.xml

<?xml version="1.0" encoding="utf-8"?>
<root>
   <server>
     <mbmail>
      <name>127.0.0.1</name>
      <ip>127.0.0.1</ip>  
   <port>
   <smtp>25</smtp>
   <pop3>110</pop3>
   <manage>8000</manage>
   </port>
   </mbmail>
  <data domain="21cn.com" smtp="smtp.21cn.com" pop3="pop.21cn" title="" />
   </server> 
   <mail>
   <path>d:\mail</path>
   </mail>
</root>

请问这段代码有什么错啊.

为什么这运行时总是报这个错啊.请大家帮帮看看.谢谢啦.

系统初始化!
D:\Tomcat 5.5\webapps\ROOT\web-inf\easyjf-web.xml
547  [http-8080-Processor25] ERROR net.meybo.mail.Config  - 配置文件出错:Load xml string error!/D:/Tomcat%205.5/webapps/ROOT/WEB-INF/classes/mailserver.xml
547  [http-8080-Processor25] ERROR net.meybo.mail.Config  - 配置文件出错:Load xml string error!/D:/Tomcat%205.5/webapps/ROOT/WEB-INF/classes/mailserver.xml

发言人: 222.247.145.** (匿名用户)  楼层:4
发表时间: 2008-07-17 05:50
    [引用回复]

为什么这里没有人回答楼上的问题,我的同样是出现这个问题.请大家帮帮忙吧.

急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!急求!!

发言人:lzy305  楼层:5
发表时间: 2008-07-22 04:30
    [引用回复]

此系统的初始用户名,和密码是多少

还有这个错误是什么意思.

 

发言人: 222.91.140.** (匿名用户)  楼层:6
发表时间: 2008-07-22 06:01
    [引用回复]
我和五楼的是一样的问题
发言人: 220.178.26.** (匿名用户)  楼层:7
发表时间: 2008-10-28 09:42
    [引用回复]

你们问的什么问题啊?

发言人: 222.210.212.** (匿名用户)  楼层:8
发表时间: 2008-10-28 12:40
    [引用回复]

请问:说这个property(下面的配置)没的name属性,是什么意思??

<property name="com.easyjweb.defaultActionPackages">

发言人: 119.6.38.** (匿名用户)  楼层:9
发表时间: 2009-03-19 01:34
其它版块:


标题:EasyJWeb配置文件详细介绍



当前没有附件!
提示:您能上传的附件单个文件最大为2M
  

Copyright (C) 2005 EasyJF.com 简易java框架网 渝ICP备06004507号
如有意见请与我们联系