一  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入门学习(二)的更多相关文章

  1. ReactJS入门学习二

    ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...

  2. SpringMVC入门学习(二)

    SpringMVC入门学习(二) ssm框架 springMVC  在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...

  3. git入门学习(二):新建分支/上传代码/删除分支

    一.git新建分支,上传代码到新的不同分支  我要实现的效果,即是多个内容的平行分支:这样做的主要目的是方便统一管理属于同一个内容的不同的项目,互不干扰.如图所示: 前提是我的github上已经有we ...

  4. Egg入门学习(二)---理解service作用

    在上一篇文章 Egg入门学习一 中,我们简单的了解了Egg是什么东西,且能做什么,这篇文章我们首先来看看官网对Egg的整个框架的约定如下,及约定对应的目录是做什么的,来有个简单的理解,注意:我也是按照 ...

  5. Struts入门(二) 配置文件的讲解

    上一章我们演示了Struts项目的搭建  可以看到里面有几个重要的配置文件  下面我们来说明一下这3个配置文件 1.web.xml 2.strtus.xml 3.struts.properties 1 ...

  6. Struts入门学习(一)

    刚开始学习框架的时候感觉很简单,都是用到javaEE的相关框架,自己就想研究源码,但是学了很久之后毫无头绪,所以还是扎扎实实学好Struts毕竟框架做起来要比自己写javaEE要简单,下面我们就来一步 ...

  7. node入门学习(二)

    一.模块系统 1.创建模块和引用模块 //如何创建一个模块 exports.hello = function(){ console.log('hello worl'); }; //这创建了一个模块 / ...

  8. dubbo入门学习(二)-----dubbo hello world

    一.dubbo hello world入门示例 1.提出需求 某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址: 我们现在需要创建两个服务模块进行测试: 模块 功能 订单服务web模块 创 ...

  9. Struts入门学习(三)---自定义类型转换器

    类型转换器是将浏览器传递的参数进行转换为了与服务器端的参数匹配,先举个例子如果我们想往服务器传递日期类型的参数时我们要怎么让浏览器传过去的让服务器明白 我们新建一个类 ConverterTest.ja ...

随机推荐

  1. win8 or win7安装ubuntu双系统

    安装双系统的效果 现在使用win和linux双系统,整个环境相当方便好用,比如在Linux系统上,仍能访问NTFS(win的文件系统格式)中的文件和文档,当然win下的一些像matlab.vs等是不能 ...

  2. Chapter 3 Phenomenon——1

    When I opened my eyes in the morning, something was different. 这天早上当我睁开眼睛的时候,一些事变得不同了. It was the li ...

  3. Android如何查看应用签名信息

    转自http://www.trinea.cn/android/android-view-signatures/comment-page-1/ 介绍Android如何查看自己的应用签名及三方APK或系统 ...

  4. 支付宝AR实景红包上线不久即遭破解,官方已提高技术门槛

    临近春节,阿里巴巴和腾讯的红包大战可谓下足功夫,上周支付宝推出了AR实景红包,该玩法基于"LBS+AR+红包"的方式,类似与今年火爆全球的AR手游Pekomon Go ,只不过这次 ...

  5. MFC多线程各种线程用法 .

    http://blog.csdn.net/qq61394323/article/details/9328301 一.问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleTh ...

  6. X11 五子棋

    #include <X11/Xlib.h> #include <stdlib.h> #include <X11/keysym.h> #include <cst ...

  7. 主机无法访问虚拟机的httpd服务

    症状:虚拟机装的centos6.3 通过桥接的方式与主机连接 虚拟机通过yum安装httpd服务 在主机浏览器中输入 虚拟机ip  无法访问虚拟机Apache 虚拟机和主机可以相互ping通 解决:关 ...

  8. JavaFx的一些总结

     JavaFX的一些总结:1.场景scene.布局layout.控件control是javaFX的基本组成部分.控件可以放到布局中,布局可以放到布局中,也可以放到场景中,这里要注意,场景里只能放一个布 ...

  9. studio_svn

    最新升级IDEA12到13版本,升级后发现IDEA中SVN无法正常使用,但文件夹下能够正常使用. 并且报错:svn: E204899: Cannot run program "svn&quo ...

  10. 理解iaas paas saas三种云服务区别

    其实搞懂这个问题也不难,我们可以把云计算理解成一栋大楼,而这栋楼又可以分为顶楼.中间.低层三大块.那么我们就可以把Iass(基础设施).Pass(平台).Sass(软件)理解成这栋楼的三部分.基础设施 ...