標籤:異常 sys 有意思 sel add font oid method nat
發現一個比較有意思的bug,
//Action中以get開頭且傳回型別不為void(如 public Object get*() )的方法會被自動執行
//放入值棧時會執行一次,
//若在頁面調用則再執行一次
如下面這個method
public String getUserByID() { System.out.println("userAction.getUserByID()執行中。。。"); idUser = userService.getUserByID(user.getUid()); return SUCCESS;}
若調用調用這個方法會發現,查詢語句被執行了兩次
UserAction.getUser()執行中。。。userAction.getUserByID()執行中。。。Hibernate: select user0_.uid as uid1_0_0_, user0_.username as username2_0_0_, user0_.address as address3_0_0_ from tbl_user user0_ where user0_.uid=?userAction.getIdUser()執行中。。。userAction.getIdUser()執行中。。。userAction.getIdUser()執行中。。。userAction.getIdUser()執行中。。。userAction.getUserList()執行中。。。userAction.getPageList()執行中。。。userAction.getIdUser()執行中。。。userAction.getName()執行中。。。UserAction.getPage()執行中。。。userAction.getPageList()執行中。。。UserAction.getUser()執行中。。。userAction.getUserByID()執行中。。。Hibernate: select user0_.uid as uid1_0_0_, user0_.username as username2_0_0_, user0_.address as address3_0_0_ from tbl_user user0_ where user0_.uid=?userAction.getUserList()執行中。。。
而且在執行其他method方法時也會調用這個方法,這樣會導致程式跳出異常,把method名改為selectUserByID()問題解決
struts2,action方法自動執行兩次