您所在的位置: 首页 > 读书频道 > 设计开发 > Java系列 >

1.14.2 Struts 2.0框架介绍(2)

http://book.51cto.com  2008-07-06 10:18  周桓  清华大学出版社  我要评论(0)
  • 摘要:《JSP项目开发全程实录》第1章都市供求信息网(Struts 2.0+SQL Server 2000实现),这一章通过应用Struts 2.0+SQL Server 2000开发一个流行的电子商务网站——都市供求信息网,本节为大家介绍Struts 2.0框架介绍。
  • 标签:JSP  项目  开发  Struts 2.0  JSP项目开发全程实录

1.14.2 Struts 2.0框架介绍(2)

3.视图组件

在Struts 2.0中,请求处理结束后,返回的视图不仅可以是JSP页面、Action动作,还可以是其他的视图资源,如FreeMarker模板、Velocity模板和XSLT等。

Struts 2.0完成了请求的处理后,将根据在配置文件中的配置,决定返回怎样的视图,这主要是通过<result>元素的type属性来决定。若返回FreeMarker模板,则设置type属性的值为freemarker;若返回Velocity模板,则设置为velocity;若返回另外一个Action动作,则设置为redirectAction;在没有设置type属性的情况下,默认返回的视图为JSP页面。例如下面的配置:

 <action name="returnType" class="com.yxq.action.ReturnAction"> 
<result>/welcome.jsp</result>          <!-- 返回JSP页面 -->   
<result name="vm" type=" velocity ">/welcome.vm
</result>      <!-- 返回Velocity模板 -->
<result name="action " type=" redirectAction ">
myReturn.action</result>  <!-- 返回Action动作 -->
</action>

4.配置文件

Struts 2.0默认会加载Web应用WEB-INF/classes目录下的struts.xml配置文件,通过该文件的配置为用户请求指定处理类,并设置该请求处理结束后返回的视图资源。在开发大型项目时,这往往struts.xml文件会导致过于庞大,降低了可读性。此时可以自己创建配置文件,然后在struts.xml文件中通过<include>元素包含这些文件。例如在struts.xml文件中包含名为myxml.xml的文件:

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="myxml.xml"/>    <!-- 包含myxml.xml文件 -->
</struts>
在myxml.xml文件中配置用户请求与处理类的关系。例如下面的配置:
  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
       <struts> 
           <package name=" example" extends="struts-default">
               <action name="my" class="com.yxq.action. MyAction">
                   <result>/welcome.jsp </result>
</action>              
……//其他<action>元素的配置
</package>
</struts>

代码贴士

Struts2.0配置文件的根元素。

包元素。name属性指定了包名称;extends属性指定了继承的另一个包元素;struts-default是在struts-default.xml文件中定义的包的名称。struts-default.xml位于struts2-core-2.0.11.jar文件下,在该文件的struts-default包元素中,定义了<result>元素的type属性所能指定的视图类型、Struts 2.0中提供的拦截器以及对继承了struts-default包的XML配置文件中配置的所有Action类默认执行的拦截器。

<action>元素,用来配置业务控制器与请求的关系。

<result>元素,指定请求处理结束后返回的视图资源。

5.消息资源文件

在Struts 2.0中用来存储提示信息的properties资源文件有以下3种:应用范围内的资源文件、包(package)范围内的资源文件和Action类范围内的资源文件。
 
应用范围内的资源文件。

该资源文件在整个应用内都可以被访问,通常称为全局资源文件,它需要在struts.properties配置文件中指定。例如,在WEB-INF/classes目录下创建了一个名为allMessage.properties的全局资源文件,在struts.properties文件中需进行如下配置:

struts.custom.i18n.resources=allMessage
若将文件保存在了WEB-INF/classes/messages目录下,需进行如下配置:
 struts.custom.i18n.resources= messages.allMessage

struts.properties文件通常应被存放到Web应用的WEB-INF/classes目录下,Struts 2.0会自动加载该文件,该文件以key=value的形式存储了一些在Struts 2.0启动时对Web应用进行的配置,key用来表示配置选项名称,value表示配置选项的值,如解决Struts 2.0中文乱码的问题。
 
包(package)范围内的资源文件。

包范围内的资源文件必须命名为package_xx_XX.properties,其中xx表示语言代码,XX表示地区代码,例如package_zh_CN.properties表示中文(中国)。通过这样命名,可以实现应用程序国际化。也可忽略语言代码与地区代码,命名为package.properties,表示任意语言(地区)。包范围内的资源文件只可被当前包中的类文件访问。例如,存在如图1.60所示的包结构,在actionA子包中存在一个package.properties资源文件,则actionA子包中的类文件可以访问package.properties资源文件,而actionB子包中的类文件则不能访问。可将package.properties文件存放在com/yxq目录下,使得com/yxq目录下所有子目录中的类文件都可以访问。

 
图1.60  包结构图

Action类范围内的资源文件。

该资源文件只可被某一个Action类访问,它必须与访问它的Action类存放在同一个目录下,并且文件的命名与该Action类的名称相同。例如,在com.yxq.action包下存在MyAction.java类文件,若在com.yxq.action下创建一个MyAction.properties资源文件,则该文件只可被MyAction.java类文件访问。

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
JSP开发基础教程
PHP开发基础入门
深入Vista应用程序开发
让你的代码“炫”起来——WPF开发教程
初探敏捷开发
 
 验证码: (点击刷新验证码)   匿名发表
  • 网络工程师考试案例动手实验营

  • 作者:郭春柱
  • 本书依据2009年版《网络工程师考试大纲》的考核要求,深入研究了历年网络工程师考试试题的命题风格和试题结构,对考查的知识点..
Copyright©2005-2008 51CTO.COM 版权所有