1.Struts1缺点
1.侵入性的,对于Servlet的API的依赖比较严重【耦合度比较高】
2.ActionForm数据模型的提供,在开发中会造成不良的影响
2.Struts2[MVC的框架,单控制器的框架]有apache提供
Struts1和Struts2没有任何关系 struts1-->Serlvet
struts2-->webwork
3.Struts2的框架
1.下载jar包 struts2.1.8 /struts2.1.6
4.Struts2环境的搭建
1.导入jar包
1).核心jar包
struts2-core-2.1.8.jar
2).导入第三方jar包
xwork-core-2.1.6.jar 是webWork的核心jar包
oro-2.0.8.jar 验证
ognl-2.7.3.jar 对象图导航
freemarker-2.3.15.jar 模板
antlr-2.7.2.jar 动态字节码
commons-*.jar
2.导入配置文件
struts.xml文件在当前项目的src下面
5.Struts2的开发
1.配置Struts2的单控制器在web.xml中作为一个过滤器
<filter>
</filter>
2.开发Action
implements Action 接口
3.配置文件 struts.xml的声明
<package name="自定义" namespace="/" extends="struts-default">
<action name="请求" class="action的全路径">
<result name="action返回的字符串">/跳转的路径</result>
</action>
</package>
4.struts2的默认请求为 *.action 或者 *
6.Struts2开发Action的方式
1.implements Action
2.一个java类
3.extends ActionSupport {提供了Struts2中很多额外功能;普遍使用}
7.Struts2默认执行Action中的execute()方法
如果<result>/ok.jsp</result> 表示Action返回的结果为success;
8.登陆案例
9.Struts2.0对于JSP中数据的提交的封装
1)Struts2.0会将Jsp中提交的数据与对应的Aciton属性进行赋值
2)Struts2.0框架会将Jsp中提交的数据以对象的形式进行封装
1)LoginAciton {
private User user;
}
User{
private String name;
}
jsp: <input name="user.name" type="text"/>
10.Struts2.0如何实现数据的封装
1)ActionContext:往作用域中添加数据
在Action中通过
ActionContext ctx=ActionContext.getContext();//单例设计模式
单例设计模式:保证在java的应用程序中,一个类只有一个实例
单例的常用形式:类的构造器为private
public class SingleUser{
private static SingleUser user=new SingleUser();
private SingleUser(){//私有的构造器
}
public static SingleUser getUser(){
return user;
}
}
SingleUser user=SingleUser.getUser();
Calendar c=Calendar.getInstance();
ctx.getxxx().put(key,value);
public class ActionContext(){
private HttpServletRequest;
private HttpSession;
private ServletContext;
put(key,value){
HttpServletRequest.setAttribute(key,value);
}
}
Struts2.0框架默认将Action的属性放入在值栈中
2) LoginAction exetends ActionSupport implement ServletRequestAware
private HttpServletRequest request;
@Override
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
11.result跳转类型
<result name="" type="dispatcher">jsp页面</result>
一个Action 转发到 一个 Jsp页面【默认】
<result name="" type="redirect">jsp页面</result>
一个Action 重定向到 一个Jsp页面
<result name="" type="chain">actionName </result>
aAction 转发到 bAction
<result name="" type="redirectAction">actionName</result>
aAction 重定向到 bAction
Struts2学习笔记day01
最新推荐文章于 2024-10-01 18:51:18 发布