Struts2
先操作再讲原理
(给你自行车,你不是拆开它,研究,而是先学会骑,再考虑原理)
Struts1 struts2 Webwork
Struts1(技术不好用的多), Webwork(技术好用的少),最后综合成struts2
学习上痛苦的根源之一是只能走的时候逼我来跑
先讲应用,再讲理论,先学脉络,后学细节
Action(写出HelloWorld)
第一步拷贝struts.xml
第二步拷贝jar文件
第三步拷贝web.xml文件(修改)
修改struts.xml文件,先注释掉
调试要循序渐进,
文件管理 struts目录下面ppt、res(文档)、soft(软件)、src(源码)
利用抓屏记录笔记onenote
<constant name=”struts.devMode” value=”true”>,现在处于开发模式,改完马上有反馈
想读struts源码,怎么配置。Jar文件点右键Properties->Java Source Attachment->External Folder+添加struts源码
Properties->JavaDoc Location(可以查看api文档)选定某个类在按F1查看这个类的帮助信息
建下一个文档的时候最后copy已经存在的项目
在xml写的时候没有提示,eclipse不知道提示,window->preferences->(搜索catalog),在core.jar中找dtd文件
探讨struts2的运行机制
浏览器->Http协议->Tomcate->web application->读取web.xml文件->看到filter->交给Struts2filter处理doFilter,先看namespace->去查struts.xml->action(看名称是否存在)->存在返回jsp
JUDE画图(画出上面的操作过程)
设计模式就是把简单的问题复杂化,就是为了可扩展
Struts的功能就是,把你的请求跟你最后的结果(视图)分开
学东西,战略上藐视他们
Namespace决定了action的访问路径
Package的作用,就是解决命名冲突,打包
namespace写的是什么,就必须在url中加上,以/开头,以模块划分,不写,意味着为空,包括了其他package没办法处理的action.
拷贝项目的时候需要改一下web Context root,从新部署
被人的项目引入,import->exist project ->copy projects into workplace
具体视图的返回可以有用户自己定义的Action来决定
不一定,自己写个名字就是个action
具体的实现有三种(什么都不继承、继承Action、继承ActionSupport)
Struts1,action对象只有一个,struts2中,每次访问action时都会new个新对象
不配置class时,默认的class是ActionSupport的对象,这个类是xwork里面的,返回
Success
result不配置的时候默认的为success
配置class时,由该类处理,execute()方法
路径问题说明
没有找到对应的namespace和action就会交给tomcat处理,找welcome-file-list
Jsp不会看真正的路径在哪,它只会看映射的url地址(相对路径)
/index.jsp,是整个站点的根目录,解决方案是用绝对路径<%=basePath%>/index.jsp
另一种是用<base href=”<%=basePath%>” />
Struts2中的路径问题是根据action的路径而不是jsp路径确定,所以尽量不要使用相对路径
在jsp中用request.getContextRoot方式来拿到webapp路径或者myeclipse指定basePath
Action执行的时候不一定执行execute()方法,添加一个method=”add”参数(不推荐用)
动态的方法调用DMI,好多方法的时候,也只需要配置一个action
ActionWildcard(通配符),可以将配置量降到最低
Student*àStudentAdd(action)
====
约定优于配置(开发约定),一个成熟的项目,项目经理都有约定,jsp怎么命名,类怎么命名,方法怎么约定
怎么那么他妈的简单,那么so easy,
同学们用大腿想想,action首先匹配最精确的。包括*的就看配置的前后
有的模块需要单独配置。配置过滤器什么的
转载请注明:学时网 » struts2视频教程听课笔记(一)