- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
struts学习心得
一.
配置问题:
必威体育精装版的struts2为GA版2.2.1
其中必须类库为1.commons-fileupload-1.2.1.jar
2. commons-io-1.3.2.jar
3. freemarker-2.3.16.jar
4. javassist-3.7.ga.jar
5. ognl-3.0.jar
6. struts2-core-2.2.1.jar
7. xwork-core-2.2.1.jar
之前的版本使用ognl时不需要javassist这个类库 现在这个版本则需要。。
二.
EL表达式(JSP EL)
目的是为了使JSP写起来更加简单。
A、语法结构
${expression}
B、[ ]与.运算符
EL 提供“.“和“[ ]“两种运算符来存取数据。
当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“[ ]“。例如:
${user.My-Name}应当改为${user[My-Name] }
如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:
${sessionScope.user[data]}中data 是一个变量
C、变量
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
属性范围在EL中的名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope
D、特别强调:
1、注意当表达式根据名称引用这些对象之一时,返回的是相应的对象而不是相应的属性。例如:即使现有的 pageContext 属性包含某些其他值,${pageContext} 也返回 PageContext 对象。
2、 注意 %@ page isELIgnored=true % 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言。
3、在web中用EL表达式时 ${name}其意思是调用其getName方法,而不是name这个属性
例如:
public class HelloWordAction{
private String msg;
public String getMessage{
return msg;
}
}
在jsp中使用${message} 就是返回msg的值。经实验证明了的
三.
Struts2是在webwork2的基础上发展而来的。和struts1一样也是mvc框架。但是虽然他们名字一样但是原理差异很大。Struts2之所以会产生是因为有以下几个优点:
在软件设计方面struts2没有像struts1那样和servlet API和struts API那样紧密的耦合。Struts2可以不依赖它们。Struts2属于无侵入式设计。而struts1属于侵入式设计。
Public class HelloWordAction extends Action{
Public ActionForward execute(ActionMapping mapping ActionForm form HttpRequest request HttpResponse response)throws Exception{
。。。。
}
}
而struts2则不需要,只需自己定义就好。
2.Struts2不需要注意线程同步的问题,而struts1则面临这个问题,因为struts1对action创建的时候只创建一次,当多个用户同时访问这个action时,则必须出现这个同步的问题。
而对struts2来说,需要action时都要重新new出一个对象。
四.
Namespace决定了action的访问路径,默认为“”,可以接受所有路径的action。Namespace后面可以加/也可以加/xx或者/xx/yy,则action的访问的路径就相对于/index.action,/xx/index.action或者/xx/yy/index.action
Package顾名思
文档评论(0)