gpt4 book ai didi

java - 在抛出异常()或addGlobalError()之前保存变量

转载 作者:行者123 更新时间:2023-11-30 07:14:24 25 4
gpt4 key购买 nike

美好的一天,

在一个java web应用程序中,我有一个按钮供用户单击,我将在该方法中执行一些逻辑。我计划进行一项检查,即 doSomething() 如果用户单击此按钮超过 5 次并且(命中某些逻辑并引发异常)。因此,我创建一个变量来存储点击次数。我的代码如下:

@Session
private int count;

public Resolution add() throws BaseException {

if ( count >= 5 ) {
doSomething();
}

if ( true ) {
count++;
throw BaseValidationException();
}

return view( );
}

但是,count++抛出 BaseValidationException() 后不会+1 进行计数。但是,如果我删除 throw BaseValidationException(),那么在我点击 add 按钮 5 次后,系统将运行到 doSomething()

我相信 throw Exception() 或 addGlobalError() 不会将变量值存储到 session 中。除了将值存储到数据库之外,还有什么办法可以克服这个问题?

最佳答案

这会起作用。

private int count; 

public Resolution add() throws BaseException {
HttpSession session=request.getSession();
int count=(Integer)session.getAttribute("count");
if ( count >= 5 ) {
doSomething();
}

if ( true ) {
count++;

session.setAttribute("count",count);
throw BaseValidationException();
}

return view( );
}

关于java - 在抛出异常()或addGlobalError()之前保存变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38691475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com