zoukankan      html  css  js  c++  java
  • Struts2 学习笔记 10 Result部分 part1

      1.关于Result我们首先来学习一下结果类型 result type。

    先来看struts.xml.

    struts.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
    	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    	"http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
    <constant name="struts.devMode" value="true" />
        <package name="default" namespace="/" extends="struts-default">
        
    		<action name="r1">
    			<result type="dispatcher">
    				/r1.jsp
    			</result>
    		</action>
           <action name="r2">
    			<result type="redirect">
    				/r2.jsp
    			</result>
    		</action>
    		<action name="r3">
    			<result type="chain">
    				r1
    			</result>
    		</action>
    		<action name="r4">
    			<result type="redirectAction">
    				r2
    			</result>
    		</action>
        </package>
    
    </struts>
    

    result的默认类型是dispatch,用于跳转到一个视图。

    redirect可以进行跳转到一个新的页面。

    这两者的区别可以这么解释一般注册的页面比如说提交到register.action注册完信息以后如果不跳转  用户可能会一直刷新这个页面 如果设计不好的程序 就会一直重复注册,注册完redirect出去 转到别的没有业务处理的页面只给提示一下注册成功。

    <result type="chain">用于跳转到其他的action。若要访问其他包的action,可以用如下写法

    <result name="r3" type="chain"> 
        <param name="actionName">重定向的Action名</param> 
         <param name="namespace">重定向Action所在的名字空间</param> 
    </result> 

    <result type="redirectAction">用于直接跳转到其他action。

      2.接下来通过一个小项目讲义下Global Result 全局结果集。


    下图是主页

    有四个链接,内容是

    传递一个参数type 分别是 1 2 3.在UserAction.java里定义了一个type变量。当type为1返回“success”,为2返回“error”,为其他情况返回“mainpage”。

    UserAction.java

    package com.tfj.struts2.action;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class UserAction extends ActionSupport{
    	private int type;
    	public int getType() {
    		return type;
    	}
    	public void setType(int type) {
    		this.type = type;
    	}
    	@Override
    	
    	public String execute() throws Exception {
    		if(type==1) return "success";
    		else if(type==2) return "error";
    		else return "mainpage";
    	}
    	
    }

    struts.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
    	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    	"http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
    <constant name="struts.devMode" value="true" />
        <package name="user" namespace="/user" extends="struts-default">
        	<global-results>
                <result name="mainpage">
                /mainpage.jsp
                </result>
            </global-results>
    		
    		<action name="user" class="com.tfj.struts2.action.UserAction" >
    		
    			<result name="success">
    				/success.jsp
    			</result>
    			<result name="error">
    				/error.jsp
    			</result>
    		</action>
           
        </package>
        <package name="admin" namespace="/admin" extends="user">
        	<action name="admin" class="com.tfj.struts2.action.UserAction" >
        		<result name="success">
    				/admin.jsp
    			</result>
        	</action>
        </package>
    
    </struts>


    返回的值为success 和error的情况都很好理解,当type为3时返回mainpage,但是在对应的action里并没有一个result叫mainpage。这时候就会去访问global result 。这种方式解决了假如有很多action都要去访问同一个地方这样我们把他们写到同一个Global result 减少配置量。

    再看<package name="admin" namespace="/admin" extends="user">
        <action name="admin" class="com.tfj.struts2.action.UserAction" >
        <result name="success">
    /admin.jsp
    </result>
        </action>
        </package>

    这段代码访问admin/admin?type=3时,也会访问到mainpage,这是由于admin包extends user包,这样就可以访问它的global result。


    项目文件  Result part1.rar






  • 相关阅读:
    解析SQL Server之任务调度
    Sqlserver (转载)事物与锁
    浅谈SQL Server数据内部表现形式
    浅谈SQL Server事务与锁(上篇)
    如何查看某个查询用了多少TempDB空间
    Select count(*)和Count(1)的区别和执行方式
    zookeeper 源码(二) session 和 处理事务请求
    zookeeper 源码(一) 选举和同步数据
    分布式一致性协议 --- Paxos
    分布式事务 --- 2PC 和 3PC
  • 原文地址:https://www.cnblogs.com/riskyer/p/3243796.html
Copyright © 2011-2022 走看看