专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » struts2配置:配置Struts应用 »正文

struts2配置:配置Struts应用

来源: 发布时间:星期四, 2009年1月15日 浏览:51次 评论:0
  Struts应用采用两个基于XML配置文件来配置,分别是web.xml和struts-cofig.xml文件.web.xml文件是配置所有web应用而struts-config.xml文件是struts专用配置文件,事实上也是可以根据需要给这个配置文件起其他名称.

  Web应用发布描述文件:web应用发布描述文件可以在应用开着者,发布者和组装者的间传递配置信息,Web容器在启动时候从该文件中读取配置信息,根据它来装载和配置web应用.文档类型定义DTD对XML文档格式做了定义,DTD吧XML文档划分为元素,属性,实体每种XML文档都有独自DTD文件.可以从网上下载.<web-app>元素是web.xml根元素,其他元素必须嵌入在<web-app>元素的内.要注意是子元素也是有顺序比如必须是首先<servlet>,然后<servlet-mapping>最后<taglib>.

  为Struts应用配置Web.xml文件:首先最重要步是配置ActionServlet,这个用<servlet>标签servlet-name属性起个名字叫action,然后用servlet-属性指定ActionServlet类.然后用<servlet-mapping>标签servlet-name属性指定action,在用url-pattern指定接收范围是*.do请求.不管应用中包含了多少子应用,都只需要配置个ActionServlet,类来出来应用中区别功能,其实者就是不必要,Servlet本身就是多线程,而且目前Struts只允许配置个ActionServlet.声明ActionServlet化参数:<servlet><init-param>子元素用来配置Servlet化参数.param-name设置config参数名.param-value设置struts-config.xml路径参数值.

  配置欢迎使用清单:如果客户访问Web时候值是访问了WEB应用根目录URL.没有具体指定文件,Web会自动Web欢迎文件.<welcome-file-list>元素来配置.通过其中<welcome-file>欢迎页面</welcome-file>来配置.

  配置处理:尽管Struts框架功能强大处理机制,但是不能保证处理所有或者异常.当发生时,如果框架不能处理这种,把抛弃给Web容器,在默认情况下web容器会想客户端返回信息.如果想避免让客户看到原始信息,可以在Web应用发布描述文件中配置<error-page>元素.通过<error-code>404来定义类型.然后通过<location>要处理JSP页面来对进行处理.还可以用<exception-type>来设置异常,然后通过<location>来处理异常JSP页面来处理异常.

  配置Struts标签库:这个就和以前学到JSP自定义标签类似,配置元素为<taglib>来配置.<taglib-uri>这个指定标签库uri,类似起个名称.<taglib-location>这个是标签库位置也就是实际所在路径.通过这样思路方法引入个标签库,然后在前台JSP页面就可以通过自己定义URI来标签.

  Struts配置文件:struts-config.xml文件.首先研讨下org.apache.struts.config包,在struts应用启动时候会把Struts配置文件信息读取到内存中,并把它们存放在config包中相关JavaBean类例子中.包中个类都和struts配置文件中特定配置元素对应,ModuleConfig在Struts框架中扮演了十分重要角色,它是整个config包核心,在Struts运行时来存放整个应用配置信息.如果有多个子应用都会有个ModuleConfig对象,它和Struts文件根元素<struts-config>对应.根元素中包含<form-bean><action><forward>等元素.

  <struts-config>元素:时Struts配置文件根元素,和它对应配置类ModuleConfig类,<struts-config>元素有8个子元素.他们DTD定义是data-sources?form-bean? global-exception?global-forwards?action-mapping?controller?message-resources?plug-in*在Struts配置文件中,必须按照DTD指定先手顺序来配置<struts-config>元素各个子元素,如果颠倒了这些子元素顺序,会产生.

  <data-sources>元素:用来配置应用所需要数据源,数据源负责创建和特定数据库连接.许多数据源采用连接池机制实现.以便提高数据库访问性能.JAVA语言提供了javax.sql.DataSource接口,所有数据源都必须实现这个接口.许多应用服务器和Web服务器都提供了数据源组件.很多数据库厂商也提供了数据源实现.<data-sources>元素包含多个<data-source>子元素永远配置特定数据源.他们可以包含多个<-property>子元素用于设置数据源各种属性.配置了数据源以后,就可以在Action类中访问数据源,在Action中定义了getDataSource(HttpRequest)思路方法,用于获取数据源对象引用.然后可以利用DataSource对象getConnection获取个连接对象对数据库进行操作.在配置文件中声明多个数据源时候需要为每个数据源分配唯Key值,通过这个来表示特定数据源.获取特定数据源时候可以用dataSource = getDataSource(reqeust,”A”);

  <form-beans>元素:用来配置多个ActionForm,包含个或者N个<form-bean>子元素.每个<form-bean>元素都包含多个属性.Name指定和<form-bean>匹配类.name指定该ActionForm标识符,这个属性是必须以后作为引用使用.type指定ActionForm类完整类名,这个属性也是必须.注意包名也要加上.<form-property>是指定动态Form元素,以后会深入了解.

  <global-exception>元素:用于配置异常处理,元素可以包含个或者多个<exception>元素,用来设置JAVA异常和异常处理类ExceptionHandler的间映射.Name指定和元素对应配置类,默认不用动.handler指定异常处理类默认是ExceptionHandler.key指定在本地资源文件中异常消息Key,path指定当前异常发生时候转发路径.scope指定ActionMessages例子存放范围.type指定需要处理异常类名字,必须.bundle指定Resource Bundle.

  <global-forwards>元素:用来声明全局转发,元素可以有个或者N个<forward>元素组成,用于把个逻辑名映射到特定URL,通过这种思路方法Action类或者JSP页面无需指定URL,只要指定逻辑名称就可以实现请求转发或者重定向.这样可以减少控制组件和视图聚合.易于维护.Name对应配置类.contextRelative如果为true表示当path属性以/开头时候,给出是对应上下文URL默认是false.name转发路径逻辑名,必须写.path转发或者重定向URL,必须写必须是以/开头.redirect设置为true时候表示执行重定向操作,此项为false时候,表示执行请求转发操作.重定向和请求转发区别以后就是重定向是把请求生成应答给客户端然后在重新发送给定向URL,浏览器地址栏会有显示.而转发就是直接把请求转发给本应用个文件,不生成应答所以客户端IE没显示.

  <action-mapping>元素:包含个或者N个<action>元素,描述了从特定请求路径到响应Action映射.在<action>元素中可以包含多个<exception>和<forward>子元素,他们分别配置局部异常处理和局部转发.attribute设置Action关联ActionForm在request或者session范围内key.就是在request或者session共享内名称.Name对应配置元素类.默认是ActionMapping.forward指定转发URL路径指定包含URL路径.input指定包含表单URL,当表单验证失败时候发送URL.name,指定和该Action关联Form名字.该名字必须是在form-bean中定义过,可写可不写.path必须/开头方位Action路径.parameter指定Action配置参数.在Actionexecute思路方法中可以ActionMappinggetParameter思路方法来读取匹配参数.roles指定允许该Action安全角色,多个角色的间逗号格开.scope指定Form存在范围.默认是session.tyep指定Action完整类名.unknown如果是true表示可以处理用户发出所有无效ActionURL默认是false.validate指定是否ActionFormvalidate思路方法.

  <controller>元素:用于配置ActionServlet.buffreSize指定上载文件输入缓冲大小.该属性为可选默认4096.Name指定元素对应配置类,ControllerConfig.然后是contentType指定响应结果内容类型和编码,该属性为可选,默认是text/html如果在Action或者JSP网页也设置了类型内容,会覆盖这个.locale指定是否把Locale对象保存到当前用户session中默认false.tempDir指定处理文件上载临时工作目录.nochache如果是true在响应结果中加入特定头参数.

  <message-resources>元素:用来配置Resource Bundle.用于存放本地文本消息文件.Name元素对应配置类.MessageResourcesConfig.factory指定消息工厂类.key指定文件存放Servlet对象中采用属性Key.null指定如何处理未知消息.parameter指定消息文件名.

  <plug-in>元素:用于配置Struts插件.

  配置多应用模块:所有子应用都可以共享同个ActionServlet例子,但是每个子应用都有单独配置文件.把应用划分为多个子应用模块.首先为每个应用创建单独Struts配置文件,在web.xmlActionServlet配置代码中添加几个子应用信息.采用<forward>元素来实现应用的间切换.

  Digester组件:是个Apache个开源代码项目.当Struts被时候,首先会读取并解析配置文件,框架采用Digester组件来且西配置文件.然后创建config包中对象.者对象用于存放配置信息.

  其实配置文件不难,只要都理其中原理就OK了.真正实际项目开发中,采用工具例如Eclipse系列,提供了相应插件,在创建个Struts工程时候配置文件标签都是自动生成,而我们只需要往里面填写属性就OK了.



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: