注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

魑魅魍魉福'HOME

见证成长

 
 
 

日志

 
 

JSP+Struts+Spring+Hibernate笔记  

2011-07-23 22:03:22|  分类: Web开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Struts2:
开发流程:
1 web.xml定义filter
2 定义post方法所需要的jsp网页 如果是get方法则不需要
3 定义Action类
4 配置struts.xml即配置Action和物理视图资源与处理结果的关系

struts按照以下顺序加载struts2常量
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml
如果多个文件中配置了同一个常量  后面文件的覆盖前面文件定义的常量
struts.xml用<constant>定义常量
web.xml用
<filter><init-param><param-name><param-value></></></></>定义常量

struts2可以用<include>包含其他配置文件
如果action太多则分在多个xml中

ActionSupport类实现Action接口
它是struts2默认的Action处理类 继承该类可以大大简化Action的开发

在某个Action中实现ServletResponseAware接口可以在该Action中直接使用HttpServletResponse对象
而不需要再通过ActionContext.getResponse方法获得封装过的HttpServletResponseMap对象
但即使获得了HttpServletResponse对象  也不能直接在Action中对客户端产生相应
另外 直接调用ServletActionContext类的getResponse方法也可以直接获得HttpServletResponse对象
但也存在与ServletAPI直接耦合的缺点

struts.xml中的<packet>的namespace属性控制该packet下的所有action的命名空间 
处在命名空间下的action被访问时会加入namespace的路径前缀
如处在aaa命名空间下的bbb action被访问时的路径为/aaa/bbb.action

需要一个action提供多个处理函数时  可以通过javascript改变action的响应函数
form.action=“ActionName!methodName”
<action>的method属性可以使一个action类中的多个响应函数编程多个逻辑action
javascript改变action的响应函数变为
form.action=“ActionName

<action> name="*"
 <result>/{1}.jsp</result>
</action>
尽量不要让超链接直接连接某个视图资源 而是应该全部交给struts框架处理上面的代码可以处理通用连接

当某个请求的action遇到多个匹配的action时,会按照struts中的顺序一起匹配 没有优先级

配置<result.../>时没有指定location参数,系统会把<result></result>中间的字符串当做实际试图资源,如果没有指定name属性,则name属性采用默认值success,如果没有指定type值则采用默认结果类型dispatcher

struts支持很多种结果类型
只要实现com.opensymphony.xwork2.Result接口就可以实现自己希望要的结果类型
有很多插件可以使用来增加struts的结果类型
其中redirect类型使用时会丢失所有请求参数、请求属性以及action实例、属性
并且网址也会变成xxx.jsp而不是xxx.action
  评论这张
 
阅读(394)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018