没有合适的资源?快使用搜索试试~ 我知道了~
马士兵Struts2笔记2013
需积分: 45 1 下载量 74 浏览量
2018-02-28
21:20:37
上传
评论
收藏 1.81MB DOC 举报
温馨提示
试读
40页
建立一个Struts2 工程,用Action的属性接收参数,使用Domain Model (实体模型) 接收参数,Struts2_2.1.6版本的中文问题,Struts模块包含,Struts简单数据验证 ,Struts ValueStack(值栈) Debug,Value Stack Contents,Struts2_访问Web元素,Stack Context,Action
资源推荐
资源详情
资源评论
- 0 -
目录
建立一个 Struts2 工程 .............................................................- 2 -
用 Action 的属性接收参数 ....................................................- 10 -
使用 Domain Model (实体模型) 接收参数 ....................- 11 -
Struts2_2.1.6 版本的中文问题 ...............................................- 12 -
Struts 模块包含 .................................................................- 12 -
Struts 简单数据验证....................................................................13
Struts ValueStack(值栈) Debug.............................................15
Value Stack Contents ...................................................................15
Struts2_访问 Web 元素 ...............................................................16
Stack Context ...............................................................................18
第二种方式(这种方式是最常用的,其他的都可以忘记)....18
Action 总结 ............................................................................19
Struts2_结果类型.........................................................................20
OGNL ............................................................................................22
Struts ValueStack Debug....................................................................23
Value Stack Contents ...................................................................23
Struts 投影..............................................................................28
- 1 -
建立一个 Struts2 工程
➢ 1 在 MyEclipse 中新建 web 工程
➢ 2 在 struts-2.2.1.1-all\struts-2.2.1.1 解压 struts2-blank.war( 最基础的示例程序 )
➢ 3 进入 struts-2.2.1.1\apps\struts2-blank\WEB-INF\classes 下把 struts.xml 拷到 web 工
程的 src 下面,因为工程编译完它默认就把 src 下的文件放到 class 文件下面。
、
➢ 4.拷类库,在这个项目的 lib 文件下面拷
把 jar 放入 lib 后看不见 jar 文件,是因为 MyEclipse 默认视图是 package Explorer,如果
要看硬盘上对应的视图,应该打开 windows-Show View-other-navigatior
4.配置 web.xml,参考 struts 自带的 web.xml,把 filter 的配置拷过来
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Commented [U1]: Ng:next generation 下一代的 filter,用
的是 2.1 的;跟 2.0 有区别,
2.0 用的 filter 用的是:org.apache.struts2.
dispatcher.FilterDispatcher
Commented [U2]: 通过这个名字可以看出跟 2.0 的区别,
这里调用了两个 filter,一个是 prepare 一个是 execute
filter.
- 2 -
第一个示例程序 Hello Struts
<struts>
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="hello">
<result>/hello.jsp</result>
</action>
</package>
</struts>
http://localhost:8080/strust2_0100_Introduction/
http://localhost:8080/strust2_0100_Introduction/hello 或者
http://localhost:8080/strust2_0100_Introduction/hello.action
跳转到 hello.jsp,第一个示例程序成功!
Struts2 读源码
配置文件中的
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
一看就应该知道它是对应一个类,在jar文件中找到对应的源码编译完的class文件,
查看源码: jar 文件点右键---properties--Java Source AttachmentExternal Folder
(外部文件)
struts-2.2.1.1-all/struts-2.2.1.1/src/core/src/main/java
Commented [U3]: Struts 常量的配置,struts.devMode
开发模式,开发模式改为 true 之后,修改配置文件可以
马上生效,不用重启服务器。
Commented [U4]: 这里的“/”对应 namespace 的“/”,因
为 action 的 name 属性为 hello,所以敲
Commented [U5]: 默认的 aciton 是可以省略的
- 3 -
点击 class 文件可以查看源码了,假如想看它的 doc 文档,同样的方法
jar 文件点右键---properties--Javadoc Location-导入 doc 就可以在源码中右键或者 F1
观察对应的文档了。
敲尖括号不提示的问题
Struts.xml 文件头定义了
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
配置:windows---preferences---catalog---。。。xml—xml Catalog—Add
Add 入本地定义当前 xml 的 dtd 文件:找到 struts2-core-2.2.1.1.jar 解压开找到 struts-2.1.7.dtd
完成,验证代码提示成功!
Commented [U6]: 在这个 url 这里定义了当前这篇 xml 语
法的位置。可以这个位置每次它要去网上拿,所以不一定
能生效。
Commented [U7]: 这就是我们写 xml 要参考的那个文件
- 4 -
Struts2 的运行机制
当你在客户端敲 http://localhost:8080/strust2_0100_Introduction/hello
首先找到:strust2_0100_Introduction 这个 web application,找到后去执行这个 web application
下的 web.xml
Tomcat 接收到请求之后,会发现这个 web.xml 下面,配了一个 filter,而这个 filter 过滤所有
的 url 地址,所以当我们在地址栏敲 http://localhost:8080/strust2_0100_Introduction/hello 后,
会被 StrutsPrepareAndExecuteFilter 接收到
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
StrutsPrepareAndExecuteFilter接收到后url情求后,它首先看namespace
Struts.xml
<package name="default" namespace="/" extends="struts-default">
<action name="hello" >
<result>/hello.jsp</result>
</action>
</package>
查到“/”后面的hello,它就会去package下面查是否有name属性叫“hello”的action,
有的话,找里面对应的result是谁--hello.jsp
Struts的好处就是:我可以把“请求”和“视图展现”分开,而不是写死。分开的好处
就是:如果要换成其他视图,配一下就好了,所以更加灵活。Struts核心的本质就是解决了:
把你的请求和最后的结果分开。
Commented [U8]: Important!面试!!
剩余39页未读,继续阅读
资源评论
scott_yibing
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功