第十讲(result配置).ppt

上传人:gsy****95 文档编号:88552519 上传时间:2023-04-27 格式:PPT 页数:15 大小:198.50KB
返回 下载 相关 举报
第十讲(result配置).ppt_第1页
第1页 / 共15页
第十讲(result配置).ppt_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《第十讲(result配置).ppt》由会员分享,可在线阅读,更多相关《第十讲(result配置).ppt(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Struts2中的中的result配置配置章节内容result配置的各种视图转发类型3 1动态结果集3 3全局result3 2带参数的结果集3 41、result配置的各种视图转发类型Struts2结果类型如下:vchain:Action链式处理的结果类型vdispatcher:用于指定使用JSP作为视图的结果类型默认的类型vfreemarker:用于指定FreeMarker魔板作为视图的结果类型vhttpheader:用于控制特殊的HTTP行为的结果类型vredirect:用于直接跳转道其他URL的结果类型vredirect-action:用于直接跳转到其他Action的结果类型vstre

2、am:用于向浏览器返回一个InputStream(文件下载)vvelocity:用于指定使用Velocity模板作为视图的结果类型vxslt:用于与XML/XSLT整合的结果类型vplainText:用于显示某个页面的原始代码的结果类型。v以上内容均在struts2-core-2.2.3.jar中。v注意:Struts2有很好的可扩展性,允许自定义结果类型,在Struts2-jfreechart-plugin-2.1.2.jar的struts-plugin.xml文件中配置。vv/employeeAdd.jspvv用浏览器重定向的方式,实现,struts2中的重定向,值得注意的是:type=“

3、redirect”v使用ognl表达式,得到参数的值vv/employeeAdd.jsp?username=$usernamevv对应的action:vPublic String execute()throws Exceptionthis.username=URLEncoder.encode(“东方标准”,”UTF-8”);This.msg=“我的第一个struts2应用”;Return“success”;vv这个时候,只要输入http:/localhsot:8081/struts2/test/list.action就会传递username的值到employeeAdd.jsp中,通过actio

4、n中的属性username的get方法。v如果传递的不是中文,直接在页面上写:vparam.username就可以了,否则,在页面上写入如下:vv注意注意:dispatcher结果类型是将结果类型是将forward(转发转发)到指定的到指定的JSP资源;而资源;而redirect结果类型,则意味着将请结果类型,则意味着将请求求redirect(重定向重定向)到指定的视图资源。重定向会丢失所有的请求参数、请求属性到指定的视图资源。重定向会丢失所有的请求参数、请求属性当然也丢失了当然也丢失了Action的处理结果。的处理结果。redirect重定向redirectAction-客户端跳转到另外一个

5、actionvvrvredirectAction-客户端跳转到另外一个actionvv当然,这里面重定向后是在同一个包中,如果不在同一个包中vServletActionRedirectResult.class中有属性actionName和namespacevvXXX/control/department/xdsf/43545vvvv/WEB-IINF/page/hello.jspvredirect和redirectActionv对于这两种结果类型:都是重新生成一个新请求,区别是前者通常用于生成一个对具体资源的请求,而后者通常用于生成对另一个Action的请求。两个结果类型都会丢失请求参数、请求

6、属性和前一个Action的处理结果。plainText显示页面源码vv/index.jspvv这样进入后,显示的index.jsp是jsp的源码。如果页面上有中文:vv/index.jspUTF-8vvchain和dispatchervchain-forward到一个actionv/r1.jspvdispatcher-后面的不能是actionvv v /admin.jspv v v对应的action:vpublic class AdminAction extends ActionSupport vpublic String execute()throws Exception vreturn m

7、ainpage;vvv写return“mainpage”,那么就会找到下面全局视图:v v -其它的包只要继承这个包就可以使用其它的包只要继承这个包就可以使用v /main.jspv v v v /index.jspv v v不在同一个包中,只要来继承这个包就可以了.2、全局result3、动态结果集vIndex.jsp:vv动态结果v一定不要忘了为动态结果的保存值设置set get方法vv返回successv返回errorvv vvStruts.xml:v v v v$res-$res代表的是代表的是OGNL表达式,而不是表达式,而不是ELv v 对应的Actionvpublic class

8、 UserAction extends ActionSupport vprivate int type;vprivate String res;vpublic String getR()return res;vpublic void setR(String res)this.r=res;vpublic int getType()return type;vpublic void setType(int type)this.type=type;vpublic String execute()throws Exception vif(type=1)res=/user_success.jsp;vels

9、e if(type=2)res=/user_error.jsp;vreturn success;vv4、带参数的结果集vIndex.jsp:v传参数vStruts.xml:v v v v /user_success.jsp?t=$typev v 对应的Actionvpublic class UserAction extends ActionSupport vprivate int type;v vpublic int getType()vreturn type;vvpublic void setType(int type)vthis.type=type;vvOverridevpublic St

10、ring execute()throws Exception vreturn success;vvvhttp:/./success.jsp?t=1 success.jsp?t=1vUser Success!vfrom valuestack:-得不到值得不到值vfrom actioncontext:-可以取到值可以取到值vvv分析:为什么拿不到值?vType从index.jsp中传递到action,这个时候type存放在值栈中,然后,通过传递t=$typeOGNL,得到了type=1。这个时候,变成了另外一个请求:success.jsp?t=1,在这个请求中,在这个请求中,没有栈值没有栈值t,只有,只有parameters t谢谢 谢谢!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com