struts入门学习(二)
一 struts的各种视图的转发与重定向
1 struts跳转到指定的JSP页面,只需要修改配置文件
<package name="user" namespace="/user" extends="struts-default">
<action name="login">
                     <result>/WEB-INF/page/login.jsp</result>
              </action>
        </package>
访问http://localhost/Struts/user/login.do即可跳转到login.jsp页面
2 带条件的跳转
<action name="verify" class="com.day02.demo1" method="execute">
<result name="login">/WEB-INF/page/login.jsp</result>
                      <result name="register">/WEB-INF/page/register.jsp</result>
                      <result name="default">/WEB-INF/page/default.jsp</result>
          </action>
当你访问http://localhost/Struts/user/verify.do?message=login 跳转到login.jsp页面
当你访问http://localhost/Struts/user/verify.do?message=register 跳转到register.jsp页面
当你的url中的message的值不是login和register时就凸凹转到default页面
3 动态条用方法值
(1) 只需要在url后面加上 !方法名即可
<action name="Method" class="com.day02.demo2">
<result>/WEB-INF/page/trendsMethod.jsp</result>
                </action>
在demo2中有三个方法一个属性
private String message;
public void setMessage(String message){
                             this.message = message;
                 }
                 public String getMessage(){
                             return message;
                  }
public String login(){
                            this.message = "loginVerify()";
                            return "success";
                 }
public String register(){
                           this.message = "registerVerify()";
                           return "success";
               }
public String execute(){
                           this.message = "execute()";
                          return "success";
               }
http://localhost/Struts/user/Method!login.do 即可指定调用的方法是login()
http://localhost/Struts/user/Method!register.do 即可指定调用的方法是login()
http://localhost/Struts/user/Method则执行默认的方法名execute()
可以使用struts中的配置项来指定是否禁用方法的动态调用
<struts>
                         <constant name="struts.devMode" value="true" />    <!--设置为开发模式修改后只需保存不用重新发布项目-->
                         <constant name="struts.action.extension" value="do" />   <!--后缀名设置为do-->
                         <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <!--开启动态方法调用 为false时为禁用动态方法调用-->
</struts>
4 使用通配符来动态调用方法
<action name="Method_*" class="com.day02.demo2" method="{1}">
                     <result>/WEB-INF/page/trendsMethod.jsp</result>
           </action>
只需要访问http://localhost/Struts/user/Method_login.do 即可调用login()方法
同上
5 重定向
struts中的重定向是在result中添加参数来指定的
<action name="login2">
                        <result type="redirect">/login.jsp</result>
            </action>
访问http://localhost/Struts/user/login2.do 就自动跳转到http://localhost/Struts/login.jsp
注意 : 跳转的页面不能再WEB-INF下面
跳转传递参数问题请参考博文 http://www.cnblogs.com/dbqjava/p/4350756.html
6 action之间的跳转
(1) 在同一个包下的跳转
<action name="login">
                                 <result>/WEB-INF/page/login.jsp</result>
                     </action>
<action name="login2">
                                 <result type="redirectAction">login</result>
                    </action>
访问http://localhost/Struts/user/login2.do ----->重定向到http://localhost/Struts/userlogin.do------>转发到/WEB-INF/page/login.jsp
(2) 要重定向的action不在同一个package中
<action name="login2">
                           <result type="redirectAction">
                                    <param name="actionName">login</param><!--指定要访问的转发的action名称-->
                                    <param name="namespace">/test</param><!--指定要转发的package的namespace名称-->
                           </result>
                   </action>
要重定向到另外的一个package下的action
<package name="other" namespace="/test" extends="struts-default">
                           <action name="login"> 
                                 <result>/WEB-INF/page/login.jsp</result> 
                           </action>
                    </package>
struts入门学习(二)的更多相关文章
- ReactJS入门学习二
		ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ... 
- SpringMVC入门学习(二)
		SpringMVC入门学习(二) ssm框架 springMVC 在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ... 
- git入门学习(二):新建分支/上传代码/删除分支
		一.git新建分支,上传代码到新的不同分支 我要实现的效果,即是多个内容的平行分支:这样做的主要目的是方便统一管理属于同一个内容的不同的项目,互不干扰.如图所示: 前提是我的github上已经有we ... 
- Egg入门学习(二)---理解service作用
		在上一篇文章 Egg入门学习一 中,我们简单的了解了Egg是什么东西,且能做什么,这篇文章我们首先来看看官网对Egg的整个框架的约定如下,及约定对应的目录是做什么的,来有个简单的理解,注意:我也是按照 ... 
- Struts入门(二) 配置文件的讲解
		上一章我们演示了Struts项目的搭建 可以看到里面有几个重要的配置文件 下面我们来说明一下这3个配置文件 1.web.xml 2.strtus.xml 3.struts.properties 1 ... 
- Struts入门学习(一)
		刚开始学习框架的时候感觉很简单,都是用到javaEE的相关框架,自己就想研究源码,但是学了很久之后毫无头绪,所以还是扎扎实实学好Struts毕竟框架做起来要比自己写javaEE要简单,下面我们就来一步 ... 
- node入门学习(二)
		一.模块系统 1.创建模块和引用模块 //如何创建一个模块 exports.hello = function(){ console.log('hello worl'); }; //这创建了一个模块 / ... 
- dubbo入门学习(二)-----dubbo hello world
		一.dubbo hello world入门示例 1.提出需求 某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址: 我们现在需要创建两个服务模块进行测试: 模块 功能 订单服务web模块 创 ... 
- Struts入门学习(三)---自定义类型转换器
		类型转换器是将浏览器传递的参数进行转换为了与服务器端的参数匹配,先举个例子如果我们想往服务器传递日期类型的参数时我们要怎么让浏览器传过去的让服务器明白 我们新建一个类 ConverterTest.ja ... 
随机推荐
- 网站URL重写(Java UrlRewrite 的使用)
			现在大部分的网站和商城都会使用到URL重写,接触到这个,也是因为正在做的电子商务商城.URL重写,是将原有的URL采用另一种规则来显示,使得用户方便访问同时也屏蔽一些信息. 在此说下它的好处,在开发过 ... 
- HTML学习总结(四)【canvas绘图、WebGL、SVG】
			一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ... 
- 使用canvas实现超绚丽的旋转正方形
			自己无意中的一个小"bug",却让动画变得超绚丽= = 所以,不要害怕出bug,谁知道bug不会开出一朵绚丽的花呢? <!DOCTYPE html> <html ... 
- NOIP2014-提高组初赛C语言解析(选择填空题)
			第二十届全国青少年信息学奥林匹克联赛初赛 一.单项选择题(共 20 题,每题 1.5 分,共计 30 分.每题有且仅有一个正确选项) 1. 以下哪个是面向对象的高级语言( B ) A.汇编语言 B ... 
- Unity3D脚本使用:游戏对象访问
			Unity3D中用到的组件 组件在js中对应的对象 使用如图: 注意:一个物体可以添加多个组件和多个js 同个物体上添加的js间引用 
- CodeForces 710B Optimal Point on a Line
			递推. 先对$a[i]$进行从小到大排序. 然后计算出每个点左边所有点到这个点的距离之和$L[i]$,以及右边每个点到这个点的距离之和$R[i]$. 这两个都可以递推得到. $L\left[ i \r ... 
- 洞穴勘测(bzoj 2049)
			Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好 ... 
- teyi
			$arr=array('haha'=>"苹果");print_r($arr['haha']); $arr=array(0=>"苹果");$arr=a ... 
- Hive 执行计划
			执行语句 hive> explain select s.id, s.name from student s left outer join student_tmp st on s.name = ... 
- webapi mvc路由注册
			在VS.NET 2013中,新建WebAPI项目,代码总的 GlobalConfiguration.Configure(WebApiConfig.Register); 编译时会提示:System.We ... 
