接著上回說到,這次我們將修改資料和退出登入
有了上次的專案經驗,這個功能應該很輕鬆就拿下了。
由於登入的時候,我們將user已經存入session了。其實可以直接從session中取出來,將需要回顯的資料取出來。
就比如這樣。
會員名:$
就像這樣,從$中取出來一樣。但是你發現有沒有,性別那一欄有點難搞,因為你取出來不好顯示啊。方法如下:
性別:
男 女
$其實仔細分析下這個,你會發現,這哪是取值,分明就是個判斷句。所以應該好好看下el表示式的作用,它的確可以這樣用。由此還引申出兩個另外的方法。
el表示式判斷是否為空字串
$ 返回true ,表示為空字串;
e.g
是吧!
el表示式判斷是否為空
$ 返回true 的話,表示為空
不是!!!
頁面回顯說完了,當提交修改時,將物件傳遞過來,跟原來註冊時封裝表單一樣的方法beanutils.populate(user, request.getparametermap());
但是請大家注意了,這裡你可以發現這裡跟註冊又不一樣,咱們沒有id啊,沒錯,註冊時是可以沒有,但是你要更新資料,沒有id怎麼查到原來的user呢?所以這裡需要將id(在表單中)隱藏起來$
用乙個input標籤隱藏起來,值從原來的session物件中取。
dao層呼叫的方法,update 通過id來更新。
// 修改使用者資訊
public void modifyuser(user user) throws sqlexception
ok,更新完畢了,重新存入session。可能有些人覺得改完密碼需要重新登入下,也行。也很簡單就相當於登出。
如果上步需要登出的,只需寫上這部分**就行了。登出很簡單啊,只需要把使用者的session殺死,然後重定向到登入介面接好了。登出還是需要先獲得session然後殺死這個session。(這又映出乙個問題我們session域存了那麼多,殺死哪個呢?不,是直接使session失效,即所有的都不能用。想移除某個session域,使用這個方法把session.removeattribute()移除session中的某項屬性。)
request.getsession().invalidate();//相當於註消使用者
response.sendredirect(request.getcontextpath()+"/modifyuserinfosuccess.jsp");
小結:重定向是response的事,且重定向的路徑不是跟**一樣的絕對路徑。**可以絕對路徑(就是直接寫請求路徑而不需要加別的),重定向我不知道為啥不能,它是用request.getcontextpath(),先獲得根路徑來算的。
ok。完,這次有點短......
dev c 修改資料
今天看完 linux kernel moduletcp ip 程式設計 中實現ping命令是顯示hello module 的資料報程式後,也完成了試驗現在總結如下 步驟一 在 net core dev.c中增加後門 int eefunction01 struct sk buff 0 這是函式eefu...
游標修改資料
declare updateemtinca rcursor cursor scroll 宣告乙個游標 for select emtincar.id as emtincar id,case when b.yieldtransitstatetype id is null then 3 else b.yi...
elasticSearch修改資料
elasticsearch幾乎能實時提供資料操作和搜尋功能。預設情況下,從開始索引 更新 刪除資料到出現搜尋結果的時間可以認為需要一秒的時間。這是與sql等其他平台的重要區別,其中資料在事務完成後可以立即使用。在上節中我們給索引建立了乙個文件,命令為 put customer doc 1 prett...