Struts2的全局结果集Global_Results、动态结果集dynamic_result、带参数的结果集

本文介绍了Struts2框架中的三种结果集配置方法:全局结果集、动态结果集及带参数的结果集。全局结果集允许同一包内的Action共享配置;动态结果集依据运行时变量动态选择结果页面;带参数的结果集则能在Action间传递参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、Global_Results 全局结果集

<package name="user" namespace="/user" extends="struts-default">
    	
    	
    	<global-results>
    		<result name="mainpage">/main.jsp</result>
    	</global-results>
    	
    	<action name="index">
    		<result>/index.jsp</result>
    	</action>
    	
	    <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
	    	<result>/user_success.jsp</result>
	    	<result name="error">/user_error.jsp</result>
	    </action>	    
    </package>
    
    <package name="admin" namespace="/admin" extends="user">
    	<action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">
    		<result>/admin.jsp</result>
    	</action>
</package>

 UserAction代码如下:

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";
	}


 

使用全局结果集可以使同一个包下面的其他Action共享这个结果集。如果想用其他包的配置信息,可以用extends来继承。

 

二、动态结果集 dynamic_results

Action 定义字符串变量s,根据条件来返回不同的s,xml配置文件通过${s}来动态获取值栈中的值

public String execute() throws Exception {
		if(type == 1) r="/user_success.jsp";
		else if (type == 2) r="/user_error.jsp";
		return "success";
}


 三、带参数的结果集

一次request共享一个StackValue,forword只有一次request,因此在一个request中,多个action可以共享StackValue的值。

一个action中的参数可以返回带参数的结果集传递给下一个action(可以用${参数名}来获取并将其传递到下一个页面或者其他action,下个页面通过<s:property value="#paremeters.参数名"/>)。#号是获取ActionContext中的值。这种方式的传递一般用于redirect。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值