高淇Struts2.0教程之视频笔记(4)

4_struts2配置文件(struts.xml)详解:

4.1指定web应用默认字符集:

<constant name="struts.custom.i18n.resources" value="messages"/> 18:表示中间有18个英文字母,太长所以截断了

表示指定了资源文件的放置在classes目录下,基本名是messages,则在classes目录下您就应该放置类似messages_zh_CN.properties,message_en.properties名的文件,实现Struts2的国际化

       

4.2开发模式使用:

<constant name="struts.devMode" value="true" />

ture:是开启,false:是关闭

开发阶段:一般使用开发模式。好处是:修改Action,xml文件后不需要重新启动服务器,直接可以看到结果。

发布阶段:关闭开发模式,因为在开发模式中,一直会检测是否更新代码,牺牲性能,而且发布后不需要检查代码是否更新。

       

4.3package的配置:

这里的package(包)不是java中的包,而是Struts配置文件中的<package>元素。Package就是把Action、result、type、interceptor等这些元素打包到一个逻辑单元中,便于管理。Package可以被其他包继承,可以拥有自己独立的部分,包中内容可以被子包重写。

4.3.1代码示例:

4.3.2属性简单说明:

属性名

是否必须

简单说明

name

Package的唯一标识,不允许同名

extends

指定要继承的包

namespace

指定名称空间,根据不同的命名空间划分不同的功能模块,即使Action名字相同,只要位于不同的命名空间就可以执行了。

abstract

声明包为抽象否

4.3.3配置Action

1.Action的配置信息是将:url、Action、展示页面联系起来

2.url与Action的name属性对应

3.class属性指定了Action类

4.<result>元素将Action中返回的字符串(通过result的name的属性匹配)跟展示页面(通过path或者result元素的文本值)映射起来。

4.3.4配置result

<result>元素告诉我们调用完Action后下一步做什么,<result>一般作为action的子元素,或者可以通过<global-result>定义全局result

<result>有三个基本内容:

1.name跟Action返回的字符串匹配,不同的字符匹配不同的result

Name如果没有指定值,默认是"SUCCESS",另外,Action中也定义了很多个常量,方便我们统一指定name

2.type(默认是dispatcher,类似于Servlet中的forward请求)

Type值

使用说明

chain

用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息。

com.opensymphony.xwork2.ActionChainResult

dispatcher

用来转向页面,通常处理JSP

org.apache.struts2.dispatcher.ServletDispatcherResult

freemaker

处理FreeMarker模板

org.apache.struts2.views.freemarker.FreemarkerResult

httpheader

控制特殊HTTP行为的结果类型

org.apache.struts2.dispatcher.HttpHeaderResult

stream

向浏览器发送InputSream对象,用来处理文件下载,还可用于返回AJAX数据

org.apache.struts2.dispatcher.StreamResult

velocity

处理Velocity模板

org.apache.struts2.dispatcher.VelocityResult

xsl

处理XML/XLST模板

org.apache.struts2.views.xslt.XSLTResult

plainText

显示原始文件内容,例如文件源代码

org.apache.struts2.dispatcher.PlainTextResult

redirect

重定向到一个URL ,被跳转的页面中丢失传递的信息,如request

org.apache.struts2.dispatcher.ServletRedirectResult

redirectAction

重定向到一个Action ,跳转的页面中丢失传递的信息,如request

org.apache.struts2.dispatcher.ServletActionRedirectResult

redirect-action

重定向到一个Action ,跳转的页面中丢失传递的信息,如request

org.apache.struts2.dispatcher.ServletActionRedirectResult

 
redirectredirect-action区别

一、使用redirect需要后缀名使用redirect-action不需要后缀名

二、type="redirect" 的值可以转到其它命名空间下的action,redirect-action只能转到同一命名空下的 action,因此它可以省略.action的后缀直接写action的名称。如:

<result name="success" type="redirect">viewTask.action</result>

<result name="success" type="redirect-action">viewTask</result>

3.path

代表与result对应的处理程序(一般为显示页面或者某个Action),path可以通过<result>的文本值直接指定。

4.全局result

意思是说,当配置全局result的时候,所有的Action都可以使用。

       

4. 4通配符配置Action

4.4.1 Struts.xml截图

4.4.2 UserAction截图

4.4.3 页面命名方式截图

4.4.4 浏览器输入规范和显示结果:

 

4. 5多配置文件实现

多人协作完成项目,因此,在Struts.xml文件中,利用<include>元素指定多个配置文件。

注意事项:包名、命名空间唯一,不能相同。

4. 6通过注释实现Action的零配置

通过在类里面定义,实现零配置,hibernate里面使用会比较好,在Struts 还是建议用xml,因为比较快!  

错误总结:

有时候会显示找不到路径解决如下~

原文地址:https://www.cnblogs.com/FreshStudent/p/3631072.html