struts2.x学习笔记 超详细

来源:互联网 发布:sqlserver免费吗 编辑:程序博客网 时间:2024/04/29 13:43

更多可以下载:http://filemarkets.com/fs/ag3meicn6ge013e269/

一、应用开发

<packagename=”itcast” namespace=”/test” extends=”struts-default”  abstract=”false”>

       <action name=”helloworld” class=”cn.itcast.action.HelloworldAction”method=”execute”>

<result name=”success”>/WEB-INF/page/hello.jsp</result>

       </action>

</package>

1.      abstract定义抽象包,如果为true就不能定义action,只能被继承,默认是false

2.      struts-default是个抽象包,都需要继承它

3.      method是调用的方法

 

 

二、编辑xml文件无提示:

找到dtd文件:如图(很多图片不方便上传 请去路径下载)


三、Action名称搜索顺序

比如url是:http://server/struts2/path1/path2/path3/test.action

1. 首先选择namespace为/path1/path2/path3/的package,如果不存在这个package则执行步骤2,果存在则使用,如果不存在,就会直接跑到默认namespace的package里面去找,(的命名空间为字符串“”),如果找不到,则提示没有action

2. 寻找namespace为/path1/path2/的package,不在,则转至步骤3,存在则使用,如果不存在,就会直接跑到默认namespace的package里面去找,(的命名空间为字符串“”),如果找不到,则提示没有action

3. 寻找namespace为/path1的package,不在,则转至步骤4存在则使用,如果不存在,就会直接跑到默认namespace的package里面去找,(的命名空间为字符串“”),如果找不到,则提示没有action

4. 寻找namespace为/的package,不在,则转至步骤3,存在则使用,如果不存在,就会直接跑到默认namespace的package里面去找,(的命名空间为字符串“”),如果找不到,则提示没有action

 

 

 

一、Action配置的各默认值

 

<packagename=”itcast” namespace=”/test” extends=”struts-default”  abstract=”false”>

       <action name=”helloworld” class=”cn.itcast.action.HelloworldAction”method=”execute”>

<result name=”success”>/WEB-INF/page/hello.jsp</result>

       </action>

       <action name=”helloworld” >

<result name=”success”>/WEB-INF/page/hello.jsp</result>

       </action>

</package>

1. 没有为action指定class默认为ActionSupport

2. 默认的method,默认执行action中的execute()方法

3. 没有指定result的name属性,默认为success

二、Action中result的各种转发类型

1. result配置类似于struts1中的forward,但是struts2提供了多种结果类型,常用的类型有:dispatch(默认),redirect、redirectAction、plainText

2. 在result中还可以使用${属性名}表达式访问action的属性,表达式的属性名对应action中的属性。如下:

<result type=”redirect”>/View.jsp?id=${id}</result>

3. redirectAction:

1. 重定向的action中同一个包下

<result type=”redirectAction”>helloworld</result>

2. 重定向的action在别的命名空间下:

<result type=”redirectAction”>

        <param name=”actionName”>helloworld</param>

        <param name=”namespace”>/test</param>

</result>

4. plaintext:显示原始文件内容,例如:当我们需要原样显示jsp文件源代码的时候

<result type=”plainText”name=”source”>

<param name=”location”>/xxx.jsp</param>

        <param name=”charSet”>UTF-8</param>

</result>

5. 多个action共用一个视图

1. <global-results>

<result name=”message”>/WEB-INF/page/message.jsp</result>

</global-results>

       其他action调用

              <action  name=”manage” class=”cn.itcast.action.helloWorldAction”method=”add”>

</action>

其中add方法中return “message”;

这个例子中全视图和action定义在同一个包下,如果想不同包也使用该视图就可以,把global定义在一个新的包里,并且继承extends=”struts-default”,根据包的继承属性,其他action所在的包都继承全视图所在的包

 

 

 

三、指定需要struts2处理的请求后缀

1. 默认后缀可以通过常量:“struts.action.extension”进行修改

如:只处理以.do后缀的请求路径

<constantname=”struts.action.extension” value=”do”/>

如果想多个如.do/.action等等可以通过,号进行隔开

Value=”do,action”

2. 常量可以在struts.xml或struts.properties中配置,建议在struts.xml中配置,

两种配置方法:

        1.<constant name=”struts.action.extension” value=”do”/>

        2.struts.properties: struts.action.extension=do

        加载常量的顺序:struts-default.xml struts-plugin.xml struts.xml struts.properties web.xml

        后一个文件中的常量会覆盖前面定义的相同的常量

3. 常用常量及配置:

a)        <constant name=”struts.i18n.encoding”value=”UTF-8”/>

b)       <constant name=”struts.action.extension”value=”do”/>

设置浏览器是否缓存静态内容,默认true(生产环境中使用)开发时最好关闭

c)        <constant name=”struts.serve.static.browserCache”value=”false”/>

当struts的配置文件修改后,系统是否自动重新加载该文件,默认false(生产环境中使用)开发时最好打开

d)       <constant name=”struts.configuration.xml.reload”value=”true”/>

e)        开发模式下使用,这样可以打印更详细错误信息

f)        <constant name=”struts.devMode”value=”simple”/>

g)       默认的视图主题

h)       <constant name=”struts.ui.theme”value=”simple”/>

i)         与spring 集成时,指定由spring负责action对象的创建      

j)         <constant name=”struts.objectFactory”value=”spring”/>

k)       上传文件大小限制

l)         <constant name=”struts.multipart.maxSize”value=”10802032”/>

 

 

 

四、Struts2的处理流程

不好写了  想详细的请去下载免费的:http://filemarkets.com/fs/ag3meicn6ge013e269/
0 0