全部博文(320)
分类: Java
2010-05-16 19:09:14
1、02_尚学堂马士兵_Struts2_Struts2_HelloWorld_2.avi
指定Tomcat的目录,指定JDK搭建开发环境(拷贝jar包,复制struts.xml文件 此文件不要放在WEB-INF下面,应该放到src下面 ),在web.xml文件中:
其中
2、04_尚学堂马士兵_Struts2_Struts2_HelloWorld_3.avi
(1)
action -->相应的处理类或页面 -->
/Hello.jsp
(2)struts.xml不自动提示的解决办法: window--perferences-XML catalog---add---key Type="URI" key="*.dtd"
3、09_尚学堂马士兵_Struts2_Struts2_HelloWorld_7_2.avi
struts2的执行流程:
当用户在浏览器中敲入要访问的地址的时候,浏览器会将这个请求发送给tomcat然后tomcat判断应该交给那个WebApplication来处理,然后会读取它下面的web.xml配置发现有配置:
4、10_尚学堂马士兵_Struts2_Struts2_Namespace_命名空间.avi
(1)namespace决定了action的访问路径,默认为"",可以接收所有路径的action
namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,
/xxx/index.action,或者/xxx/yyy/index.action
namespace最好也用模块来进行命名
5、11_尚学堂马士兵_Struts2_Struts2_Action.avi
(1)struts1 与struts2的一个重要区别:在struts1中进行多次访问的时候用到的是同一个Action对象。而struts2则是每一次访问都会创建一个Action对象,所以struts2不会有线程安全问题的发生
(2)
(3)
(4)实现struts的处理类的时候不要自己随便写类然后定义execute()方法,也不要实现Action类而要从ActionSupport类继承,可以直接使用它为我们定义好的方法.
6、12_尚学堂马士兵_Struts2_Struts2_Path_路径问题.avi
(1)struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。
虽然可以用redirect方式解决,但redirect方式并非必要。
解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径)
或者使用myeclipse经常用的,指定basePath
(2)request.getContextPath()得到项目的名字,一般用来解决路径问题 如果项目为根目录,则得到一个"",即空的字条串。
request.getscheme()返回的协议名称.默认是http
request.getServerName()就是获取你的网站的域名,如果是在本地的话就是localhost
request.getServerPort()获取服务的端口号
7、13_尚学堂马士兵_Struts2_Struts2_ActionMethod_DMI_动态方法调用.avi
Action执行的时候并不一定要执行execute方法
可以在配置文件中配置Action的时候用method=来指定执行哪个方法
也可以在url地址中动态指定(动态方法调用DMI)(推荐)
添加用户
添加用户
前者会产生太多的action,所以不推荐使用
配置文件:
8、14_尚学堂马士兵_Struts2_Struts2_ActionWildcard_通配符配置.avi
主要学习通配符的使用 通配符可以将配置量降到最低,不过一定要遵守"约定优于配置"的原则
说明:
(1){1}代表name="Student*"后面第一个'*',同理{2}代表第二个'*'
(2).如果action之间有重复配置,struts2会匹配最精确的action。如果通配符配置之间有重复,则看前后配置顺序
9、 15_尚学堂马士兵_Struts2_Struts2_用Action的属性接收参数.avi
在继承ActionSupport的类中定义要接受的参数,参数的名称与Action所传的名称无关在struts2内部调用的是属性的set方法,所以setxxx()的名字一定要与Action后面所传的值是一样的。
10、16_尚学堂马士兵_Struts2_Struts2_用DomainModel接收参数.avi
如果要接受的参数的个数很多,我们可以不用定义属性而是直接定义一个对象例如:
private User user (set get 方法)在调用Action传值的时候使用user!add?user.name=x&user.age=x的方式进行值得传递。(最常用的方式)
11、17_尚学堂马士兵_Struts2_Struts2_用ModelDriven接收参数.avi
继承ActionSupport类的处理类必须同时实现ModelDriven
15、23_尚学堂马士兵_Struts2_模块包含
可以将别的写好的配置文件直接包含到struts得配置文件中,方便多人开发避免不必要的配置文件冲突.
login.xml
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"">
16、24_尚学堂马士兵_Struts2_默认Action
17、27_尚学堂马士兵_Struts2_结果类型_result_type_1
ResultType的最常用的几种配置:(四种配置分别代表了四种不同的跳转方式)
18、30_尚学堂马士兵_Struts2_Global_Results_全局结果集
18、32_尚学堂马士兵_Struts2_带参数的结果集
访问链接格式:传参数
public class UserAction extends ActionSupport {
private int type;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
@Override
public String execute() throws Exception {
return "success";
}
}
当从一个Action跳转到另一个Action的时候,如果需要传值并且是服务器端的跳转,没有必要再struts.xml文件result的跳转路径中进行传值操作,因为多个服务器端的跳转,共享的是同一个值栈,可以直接取到,但是如果是客户端的跳转(redirect)的方式进行跳转则需要进行如下的配置:
但是如果在jsp页面取出传输的值用