Struts2 讲解笔记
1.第一个Struts2入门案例
1.找jar包
Struts2-core
xwork-core
ognl
javasist
freemarker
commons-lang
commons-io
commons-fileupload
2.在web.xml文件中植入配置,配置了核心过滤器(XXXXFilter)
核心控制器
核心过滤器的名称:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
Ctrl+Shift+T
3.在src下创建一个struts.xml文件
<package name="default" namespace="/" extends="struts-default">
<action name="xxAction逻辑名称:URL请求书写的名称" class="类的物理地址">
<result name="success">/index.jsp</result>
<result name="login">/login.jsp</result>
</action>
</package>
4.在action包中创建一个Action类
实现了特定接口的一个类 Action接口
public class LoginAction implements Action{
public String execute(){
return "success";
}
}
5.写一个index.jsp页面
2.实现登录:认证自动装配
初级的自动装配
page:name Action: name保持一致
中级的自动配置
page:user.namee Action :user对象
高级的自动配置
page:name Action:user(多实现了一个接口:ModelDriven)
前提条件:要手动new出user
3.保存用户信息:ServletAPI如何使用?在Action中如何获取到session对象
解耦
方式一:ActionContext.getContext().getSession()
方式二:IOC注入
实现了接口:SessionAware: 核心方法 setSession(Map<String,Object> map)
Map<String,Object> map;
形成get和set方法
Action的execute方法中,使用map.put()
耦合
方式一:ServletActionContext.getRequest().getSession();
方式二:IOC 注入
实现一个接口:ServletRequestAware setServletRequest(HttpServletRequest request)
Action 中公开一个变量:HttpServletRequest request; get和set方法
Action中的execute方法中就可以 HttpSession=request.getSession();
4.数据校验
5.Struts2常用标签
-------------------2016年9月25日09:14:36
1.Struts2和MVC
解析:MVC是一种模式,设计思想
Struts2是这种模式的一种实现
Spring MVC
2.WebWork和Struts2关系
解析:Struts1 官方提供的框架
WebWork
3.Struts2标签
1.导入指令
<%@ taglib uri="/struts-tags" prefix="s"%>
2.使用
<s:form>
</s:form>
4.自动装配autoaware
1.login.jsp
name="username"
2.Action中的成员变量名称和登录界面中name属性值一致
5.一个异常
Stacktraces (栈跟踪)
java.lang.NullPointerException 空指针异常
cn.happy.action.LoginAction.execute(LoginAction.java:12)
6.username password ------->user
jsp页面
<input name="user.username"/>
<input name="user.password"/>
7.呵呵说
呵呵说,这么写太恶心,能不能界面上还是username,也能实现自动装配呢?
解析:ModelDriven (模型驱动)
public abstract interface com.opensymphony.xwork2.ModelDriven {
public abstract java.lang.Object getModel();
}
小tip:
1.让Action实现一个ModelDriven<UserInfo>
2.user对象手动实例化
3.UserInfo getModel(){
return user;
}
8.Servlet API
解析:API(Application Programming Interface) 应用程序编程接口
就是和Servlet相关的一组接口和类
Servlet API 文档
接口和类以及方法的说明,描述
xxx.chm
9.我想在登录成功后,拿到Session,给Session保存用户名。
1.如何在Action中获取到session对象
2.将用户名放入session作用域
10.获取session的两种方案
方式一:耦合
HttpSession session2 = ServletActionContext.getRequest().getSession();
方式二:解耦
Map<String, Object> session = ActionContext.getContext().getSession();
通过注入方案:IOC
有待考究:blogs一小篇
Map<String, Object> session = ServletActionContext.getContext().getSession();
Struts2请求流程图

Struts2 讲解笔记的更多相关文章
- Struts2学习笔记⑧
今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件 ...
- Struts2学习笔记①
Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一 ...
- Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)
Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ...
- Struts2 学习笔记(概述)
Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并 ...
- struts2学习笔记--struts.xml配置文件详解
这一节主要讲解struts2里面的struts.xml的常用标签及作用: 解决乱码问题 <constant name="struts.i18n.encoding" value ...
- Struts2复习笔记
一.Struts2的获得 Struts2的官网是http://struts.apache.org/,需要的同学可以自己去官网上下载. 二.Struts2的配置 以动态web项目为例,讲解配置Strut ...
- 【Struts2学习笔记-4】包含其他配置文件
包含其他配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLI ...
- 【Struts2学习笔记-3】常量配置
Struts2常量 配置Struts2常量值有3个地方,1)在struts.properties文件中配置常量:2)在web.xml文件中配置FileterDispatcher指定初始化参数来配置常量 ...
- Struts2学习笔记--Struts例子及开发流程
参考资料:http://blog.csdn.net/hntyzgn2010/article/details/5547753 http://chenlh.iteye.com/blog/464341 入门 ...
随机推荐
- sorl6.0+jetty+mysql搭建solr服务
1.下载solr 官网:http://lucene.apache.org/solr/ 2.目录结构如下 3.启动solr(默认使用jetty部署) 在path路径下将 bin文件夹对应的目录加入,然后 ...
- Android线程管理之ExecutorService线程池
前言: 上篇学习了线程Thread的使用,今天来学习一下线程池ExecutorService. 线程管理相关文章地址: Android线程管理之Thread使用总结 Android线程管理之Execu ...
- 定时管理器框架-Task.MainForm
入住博客园4年多了,一直都是看别人的博客,学习别人的知识,为各个默默无私贡献自己技术总结的朋友们顶一个:这几天突然觉得是时候加入该队列中,贡献出自己微弱的力量,努力做到每个月有不同学习总结,知识学习的 ...
- CRL快速开发框架升级到3.1
CRL是一款面向对象的轻量级ORM框架,本着快速开发,使用简便的原则,设计为 无需关心数据库结构,CRL自动维护创建,即写即用(CRL内部有表结构检查机制,保证表结构一致性) 无需第三方工具生成代理类 ...
- LinqToDB 源码分析——轻谈Linq查询
LinqToDB框架最大的优势应该是实现了对Linq的支持.如果少了这一个功能相信他在使用上的快感会少了一个层次.本来笔者想要直接讲解LinqToDB框架是如何实现对Linq的支持.写到一半的时候却发 ...
- 还是俄罗斯方块之android版
前面的,口水话 请直接跳过. 虽然现在不比以前了 也没多少人气了,放到首页 都不到几百的点击量.也许博客园整体水平也是在往水的方向发展.不谈那些了,哥也曾经辉煌过 有过一天上千的点击量 ,哥也曾经有过 ...
- Keil> 编译器特有的功能 > 关键字和运算符 > __weak
__weak 此关键字指示编译器弱导出符号. 可以将 __weak 关键字应用于函数和变量声明以及函数定义. 用法 函数和变量声明 对于声明,此存储类指定一个 extern 对象声明,即使不存在,也不 ...
- js正则表达式校验非负浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- [修正] Firemonkey 中英文混排折行问题(移动平台)
问题:FMX 在移动平台的文字显示并非由该平台的原生 API 来显示,而是由 FMX.TextLayout.GPU 来处理,也许是官方没留意到中文字符的问题,造成在中英文混排折行时,有些问题. 适用: ...
- 使用WampServer环境,如何配置虚拟主机域名
很多人不会配置虚拟主机,我这里简单交一下大家,分三步: 1.在 C:\Windows\System32\drivers\etc 文件夹中的文件 Hosts 文件修改代码为: 127.0.0.1 loc ...