Struts2報錯:No result defined for *action and result input
阿新 • • 發佈:2019-02-20
這裡的報錯有很多種情況,這裡只說其中一個小分支。
首先,這個報錯肯定是這個action發生了內部錯誤,然後自動轉去名為input的result,之後發現你沒有定義名為input的result而報錯。
作為struts2的新手,在對應method裡設定斷點,但發現根本就沒有進入那個method。
也就是說,沒有進入方法ajaxViewCate,直接返回名為input的result了。
這是為什麼呢?自己也不會檢視更詳細的報錯資訊。只好不斷看部落格。
看到直接返回input可能是因為型別轉換失敗。
然後看了下有沒有兩個名字一樣的變數……
請求的URL是:
ohmygod?category =BIRDS
而該action中有個變數:
private Category category;
而且我為其設定了get、set方法。
於是,String轉Category失敗,就報錯了。(URL的category引數值獲取我是用ParameterAware的)
所以獲取從網頁輸入的資料時,一開始直接使用基本屬性獲取固然爽。(網頁中的name屬性值與action中某變數相同,且該變數有get、set方法),但之後如果在同一網頁中發生命名相同的衝突,感覺這是很難發現的。所以以後從客戶端獲取,儘量用模型驅動啦,也就是
public class AccountAction extends ActionSupport implements ModelDriven<Account>
繼承ModelDriven這種方法。儘量不用基本屬性。