我在正常執行的代碼中給出了一個字符串變量的值,但是如果發生異常,我會給它另一個值,問題是在catch塊的價值仍然是我分配第一相同。通過request.setAttribute()傳遞的值不可用request.getParameter()
這裏是我的代碼,首先在try塊中分配頁面值「addUser」,並在catch中給它「ErrorPage」的值,我將http請求中的頁面值發送給forword方法,並在裏面打印值的頁面。 我導致代碼的執行錯誤,我希望它通過catch塊,它會,但是當它發送頁面值的forword函數時,頁面的值是「addUser」而不是「ErrorPage」,儘管我將其分配給「ErrorPage」!
String page = "addUser";
try {
// ...
request.setAttribute("page", page);
forward(request, response);
} catch (SQLException e) {
page = "ErrorPage";
request.setAttribute("page", page);
forward(request, response);
}
這裏是前頁功能
String page = request.getParameter("page");
System.out.println("page is " + page); // each time it prints addUSer
有人能幫忙嗎?和thanx提前。
閱讀此:http://en.wikipedia.org/wiki/Don't_repeat_yourself很多可以消除 – BalusC 2010-12-03 18:37:36
這贏得了't compile。你在try塊之前在本地定義`page`,然後在try塊內重新定義它,這會產生編譯錯誤,所以你給我們的代碼沒有用來證明問題 – 2010-12-03 18:39:51
@ Mark Peters-我接受了我的代碼在這裏,我的代碼是非常大的,我只是給你一個快照我得到的問題,但thanx這個筆記。 – palAlaa 2010-12-03 18:59:51