1
.根据示例来模仿运行
①可解压
struts2-blank-2.1.8.war
包
,
取
struts2-blank-2.1.8\WEB-INF\classes\
目录下的
struts.xml
文件至自己工程
src
目录下
②复制
struts2-blank-2.1.8\WEB-INF\lib\
目录下包至工程
lib
下
③配置
web.xml
文件,主要是
filter
的配置
2
.
Struts.xml
里的
namaspace=”/”
这里就是地址访问路径
<action name=”hello”>
可以当成路径
/hello.action
访问,
action
可以省略,与
struts1
中
.do
一样
3
.
Struts2
可以配置修改配置不用重启
<constant name="struts.devMode" value="true"
/>
对于
strtus2
属性的设置即
<constant name=”” value=””/>
的
name
位置位于
Struts2-core-2.1.8.jar\org.apache.struts2\static\default.properties
文件下
执行过程:
如地址:
http://localhost:8888/Struts2_01/hello11
提交
tomcat
后,获取工程名对应发布的工程
Struts2_01
,然后寻找对应工程的
web.xml
文件,寻找对应的
namespace(
为该工程后的路径,如
namespace=”/test”
则地址为
http://localhost:8888/Struts2_01/test/hello11),然后再根据hello11
寻找对应的
action,
找到后,通过
result
返回配置的
jsp
4
.
Struts.xml
文件的标签提示问题
Window-preferences-
搜索
catalog—add
Location:
Key Type:URI
Key: http://struts.apache.org/dtds/struts-2.0.dtd
最好修改
myeclipse
的快捷键设置
,window-preferences-General-keys,Context
Assist
设置为
alt+/
5
.
Result
里的
name
配置了
action
里调用方法后的返回
string
所匹配的字符串,根据这个匹配的字符串查找配置里的跳转的页面;默认不配置则为
success
6
.
Action
接收参数方式
①
Action
类里写属性
,
并有
set,get
方法
,
地址传递参数会自动赋值
地址:
http://localhost:8080/user!add?name=a&age=8
-----
成员
String name; int age;
调用
user.action
里的
add
方法
,
且通过参数
name
,获取值后调用
setName();
提交
action
时自动赋值
②
action
可以接收模型对象
,set,get
方法
地址:
http://localhost:8080/user!add?user.name=a&user.age=8
Action
里拥有成员
User user;
且
User
类里拥有成员变量
name,age
自动把参数上的
user.name
和
user.age
值赋给
user
请求地址传输参数的赋值都交给模型来处理.
7
.简单数据验证
String name;
Action
验证后,对于
name
验证不通过,使用
this.addFieldError(“name”,”
错误提示信息!
”);
Jsp
页面则使用
①
<s:fielderror
fieldname=”name”/>
固定样式,添加了
ul,li
②
<s:property value=”errors.name[0]”/>
常用
;
原理:错误信息存放在
errors
里
;
errors
为字符串
map
,形式如:
errors={name=[
错误提示信息!
]},
而
map
里的
value
是
name
其实是个字符串数组或集合
[,,,];
流程:
jsp
页面调用
action
,
action
处理逻辑,
return
后,
action
里的所有成员变量都已经存在
value stack
里,就跟
struts1
里的
form
类似已经存在
request
中,可以直接在页面上取值
,
只不过
struts2
里存在
value stack
里;通过
return
的字符串找到相应的
result
的
name
值跳转到对应的
jsp
页面
,jsp
页面可以通过类似
EL
表达式取值,也可以通过
<s:property>
取值。