马士兵尚学堂struts2讲座_视频笔记_基础.doc
《马士兵尚学堂struts2讲座_视频笔记_基础.doc》由会员分享,可在线阅读,更多相关《马士兵尚学堂struts2讲座_视频笔记_基础.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、尚学堂马士兵struts2讲座_视频笔记_基础部分(1)关键字: struts2 strtus2的jar文件版本:2.1.6 作者:眼镜哥哥爱编程JDK版本选择办法:(1)先选择JDK版本,在window-Preferences-InstalledJREs,选择JDK1.6(2)在选择Compiler版本,在window-Preferences-Compiler,编译器选择1.6(3)最后Tomcat要选择编译器为1.6,在MyEclipse-Servers-Tomcat6.x-JDK,选择1.61.struts2的配置(1)struts.xml文件:struts2支持开发模式,这样改配置后不
2、用重新启动Tomcat(2)struts2的.dtd文件加载在XML Catalog中加载dtd文件,首先点add,然后填写Location和key值KeyType:选择URILocation:(文件路径)C:TomcatTempstruts_2.1.6_blank_jarstruts-2.1.dtdKey:(dtd文件名称)http:/struts.apache.org/dtds/struts-2.1.dtd(3)namespace的作用namespace决定了Action的访问路径,默认为,可以接收所有路径的Actionnamespace必须用/开头,可以写为/,或者/xxx,或者/xxx
3、/yyy,对应的action访问路径为/index.action,/xxx/index.action,或/xxx/yyy/index.actionnamespace最好用模块来命名,用来区分重名的情况注意:在copy项目的时候一定要把Web Context-root的值改掉(4)关于Actionaction在struts1和struts2的区别:struts1中的action实例有很多时候用的是同一个实例,而struts2中的action每次都会new一个新的实例struts.xml文件中没有action的class配置项默认执行ActionSupport类action的静态和动态(DMI)方
4、法调用静态:在action标签中添加method=(方法名)add动态:在form标签中的action中写 action=user(ActionName)!add.action模块包含:把struts.xml里面的package拆开,分为一个一个的模块进行加载DefaultAction(默认Action):如果URL里面没有指定后面的Action或错误的Action,添加默认指向actionName进行转向。e.g:(5)Path路径问题struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径可以用redirect方式解决,但最好使用绝对路径。(用re
5、quest.getContextRoot方式拿到webapp的路径)或者使用myeclipse经常用的,指定basePath(6)用ActionWildcard通配符来配置action调用路径优点:使用通配符可以将配置量降到最低,不过一定要遵守约定优于配置的原则 /Student_1_success.jsp /1_2_success.jsp 说明:1.1代表name=Student*后面第一个*,同理2代表第二个*2.如果action之间有重复配置,struts2会匹配最精确的action。如果通配符配置之间有重复,则看前后配置顺序(7)action接收参数直接接收参数:URL地址中的参数可以
6、和action中的属性一一对应e.g:http:/localhost:8080/struts2/user!add?name=aaa&age=23action属性-String name,int age使用DomainModel(域模型)接收参数:其实就是把传递的参数当做对象的属性值来传递e.g:http:/localhost:8080/struts2/user!add?user.name=aaa&user.age=23说明:这种方式的使用率是最高的,建议在做项目时多用此方式!使用ModelDriven(模型驱动)接收参数:action要实现ModelDriven来进行参数接收好处是可以简化参数
7、的传递字符数量,但是此方式并不常用地址栏依然是http:/localhost:8080/struts2/user!add?name=aaa&age=23但是action属性确是private User user =new User();/此处需要自己实例化对象实现ModelDriven中的getModel()方法:public User getModel()return user;(8)struts2.1.6中的中文乱码问题在struts.xml文件中写入常量:但是由于版本问题在struts2.1.6中这是个bug,在2.1.7中才会解决解决方法1:用spring中的CharacterEnco
8、ding过滤器解决解决方法2:在标签中用struts2.0的过滤器e.g:org.apache.struts2.dispatcher.FilterDispatcher(9)SimpleDateValidate简单数据验证struts2中的标签设定了样式,这并不是我们需要的,我们可以用以下方法来取消格式action中内容:this.addFieldError(name,name is error);jsp页面内容: 或同时也可以用标签来查看ValueStack中的值(10)访问web元素方式一:获得赋值与显示request,session,applicationprivate Map reque
9、st;private Map session;private Map application;request = (Map)ActionContext.getContext().get(request);session = ActionContext.getContext().getSession();application = ActionContext.getContext().getApplication();/-|赋值|-request.put(r1,r1);session.put(s1,s1);application.(a1,a1);/-|显示|-| 注意:#attr会自动搜索属性名
10、,但是如果有重名的情况就不好用了,所以建议不要用。方式二:Action实现RequestAware,SessionAware,ApplicationAware接口获得相应对象public class LoginAction extends ActionSupport implements RequestAware private Map request; public String execute()request.put(r1,r1);return SUCCESS; Override public void setRequest(Map request)this.request = requ
11、est; 方式三:实现ServletRequestAware接口,通过依赖注入得到request实例public class LoginAction extends ActionSupport implements ServletRequestAware private HttpServletRequest request; private HttpSession session; private ServletContext application; public String execute()request.put(r1,r1);session.put(s1,s1);applicatio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 士兵 学堂 struts2 讲座 视频 笔记 基础
限制150内