• 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






  • 相关阅读:
    arcgis9.3 执行python文件
    python定义影像投影
    要素缩放闪烁功能
    C# Math.Round中国式的四舍五入法
    Eziriz.Net.Reactor使用注意事项
    c# datagridview表格控件常用操作
    主窗口通用泛型打开不同子窗口
    arcgis for android 无法加载本地jpg影像解决办法
    多边形修边算法
    【笔记】Python3导入包规则
  • 原文地址:https://www.cnblogs.com/riskyer/p/3243796.html
Copyright © 2020-2023  润新知