Struts2中的Result基本用法

2014-11-23 23:19:28 · 作者: · 浏览: 0
在Action中的Result有一个type属性,主要有4种常用的用法。
1.
  
   
				/DemoJsp1.
   jsp
            
  
服务器端跳转,地址栏不改变。
传值的方法:
地址栏写:http://localhost:8080/strutsdemo/hoho/s1 t=1
JSP页面写:
struts.xml里写:
  
   
				/DemoJsp1.jsp
            
  
就可接收到参数,因为服务器跳转,他们共用valueStack里的内容。2.
  
			
   
     /DemoJsp2.jsp 
   
		
  
客户端跳转,地址栏改变。
传值的方法:
地址栏写:http://localhost:8080/strutsdemo/hoho/s2 t=1

struts.xml里写:
  
			
   
     /DemoJsp2.jsp r=${t} 
   
		
  
因为是客户端跳转,不存在ValueStack,所以把t的内容保存到Stack Context的parameters里了,通过#parameters.r就可调出该值。
下面两种方法传值同上。
3.
  
			
    
    s1
     
    /hoho
     
   
		
  
可跳转至action,服务端跳转,地址栏不改变。
4.
  
			
    
    s2 
    /hoho 
   
		
  
可跳转至action,客户端跳转,地址栏改变。可以在packaage里配置公共的Result,不用写action。我的类中是这样写的
  
			
   
     /DemoJsp3.jsp 
   
		
  
package com.struts.app;

import com.opensymphony.xwork2.ActionSupport;

public class Demo1 extends ActionSupport{
	private int t;
	
	public int getT() {
		return t;
	}

	public void setT(int t) {
		this.t = t;
	}

	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		if(t==1){
			return SUCCESS;
		}else{
			return "main";
		}
		
	}
	
	
}

所以只要我输入的t不等于1,就返回main。就会调用global-result如果一个包中想调用别的包里的global-result,就修改package里的extends内容
  
		
    
    
      /DemoJsp3.jsp 
     
   
		
    
    
      /DemoJsp1.jsp 
     
   
	
  
	
  
		
    
    
      /DemoJsp2.jsp 
     
   
	
  
包rr想用hoho的global-result就把extends修改成hoho.在大型项目中,多人可继承一个公共的result,就用这种方法。