在封装框架时遇到的一些action的问题

本文探讨了一个页面加载过程中,通过调用get方法改变属性值后,页面显示内容的变化现象。主要关注于action方法的执行顺序及get方法在页面渲染过程中的作用,发现执行非void方法时,系统会自动调用所有以get开头的方法,导致页面显示最终被更新后的属性值。通过实验验证了这一机制,并解释了不同方法返回类型对页面显示的影响。

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

封装的一个页面弹出消息的方法

1、action的get方法的问题。

@Namespace("/tag")
@Action(value="testAction", results={
@Result(name="success", location="/testBaseAction.jsp"),
})
public class TestAction extends BaseAction {


private String str = "呵呵";
@Override
public String execute() throws Exception {
setMsg(str, "info");
return SUCCESS;
}

public String
getResut() throws Exception {
this.str = "哈哈";
setMsg(str, "info");
return null;
}

public String getStr() {
return str;
}

public void setStr(String str) {
this.str = str;
}
}

当我加载页面页面testBaseAction.jsp,也就是执行execute方法时,本来想的是应该在页面弹出“呵呵”,但是却弹出的是“哈哈”。当我把getResult的类型改成void时,页面弹出的是“呵呵”。而我把getResult改成loadResult,返回类型是String时,也是弹出的“呵呵”。

由此,我推断,当执行action的一个非void方法时,action会自动执行所有的以get开头的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值