- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
struts2
1、struts2的运作流程。
答:
浏览器发送请求(核心控制器(拦截器 (Action(Result(逻辑组 件得到的数据返回并更新视图) (拦截器--》核心控制器
2、描述struts2的主要result类型及作用。
答:
dispatcher默认类型 请求转发
redirect 重定向
redirectAction 重定向至action
chain action链式处理
stream 用于向浏览器返回一个inputStream(用于下载)
tiles结果类型: 用于与Tiles整合的结果类型。
velocity结果类型: 用于与Velocity模板整合的结果类型。
xslt结果类型: 用于与XML/XSLT模板整合的结果类型。
plainText结果类型: 显示原始文件内容的结果类型,
jasper结果类型: 用于JasperReport整合的类型。
jsf结果类型: 用于与JSF整合的结果类型。
3、描述Action中validate验证步骤?
答:
1、类型转换器负责请求参数的类型转换,并将这些值设置成Action的属性值。
2、在类型转换中如果出现异常,将异常保存到ActionContext中,conversionError拦截器负责将其 封装到fieldError中,然后执行3,如无异常,直接进入3。
3、通过反射调用validatorXxx方法,Xxx代表处理用户请求的业务逻辑的方法名。
4、调用Action类的validator方法。
5、如果以上没有出现fieldError,则调用Action的业务处理方法,如有fieldError错误,转入input 逻辑视图所指定的视图资源
4、描述OGNL上下文概念。
答:
OGNL(Object Graph Navigation Language),是一种表达式语言EL(Exression Language)。使用这种表达式语言,你可以通过某种表达式语法,存取Java对象树中的任意属性、调用Java对象树的方法、同时能够自动实现必要的类型转化。在Struts2里采用了XWork的OGNL方案,构建了OGNLValueStack的机制,从而解决了从View层传递到Controller层的数据流传的不匹配性。
在OGNL中如果搜索的数据不是值栈里存储的数据,而且其他对象中,特别是Struts2的ActionContext中的对象,则在访问这些对象时候,前面要加“#”。比如ognl.jsp中访问session和request对象时候代码中在request和session之前就有“#”
5、描述struts2拦截器开发步骤。
答:实现拦截器的步骤:
a、自定义的拦截器:
(1)自定义一个实现Interceptor接口(或者继承自AbstractInterceptor)的类
(2)在struts.xml中注册上一步中定义的拦截器
(3)在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截
b、内置的拦截器:
可以直接引用内置的拦截器如:defaultStack
6、描述struts2转换器运行原理。
答:
Struts2的类型转换是基于OGNL表达式的,只要我们把HTML输入项(表单元素和其他GET/POET的参数)命名为合法的OGNL表达式,就可以充分利用Struts2的转换机制。 ??? 除此之外,Struts2提供了很好的扩展性,开发者可以非常简单的开发自己的类型转换器,完成字符串和自定义复合类型之间的转换。总之,Struts2的类型转换器提供了非常强大的表现层数据处理机制,开发者可以利用Struts2的类型转换机制来完成任意的类型转换。
实现TypeCoverter接口,或者继承DefaultTypeConverter实现类(该类实现了TypeCoverter接口),通过继承该实现类来实现自己的类型转换器。重写convertValue方法即可。 ??? 为了简化类型转换器的实现,Struts2提供了一个StrutsTypeConverter抽象类,这个抽象类是DefaultConverter的子类。实现了方法,并提供了2个不同转换方向的方法:Object convertToString(Map context,String[] values,Class toClass)和String convertFromString(Map context,Object o)。
7、描述自定义标签的类层次结构。
答:
struts2框架的标签库分为三类:
用户界面标签:生成HTML元素
非用户界面标签:
文档评论(0)