亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

flag 和isAccept

在reg.jsp里將isAccept改為flag后, 為什么RegServlet.java中if(request.getParameterValues("isAccept")!=null)不用該,改為flag后反而錯誤,這個isAccept難道不是對應表單中flag?

正在回答

3 回答

因為usebean是以javabean中的變量名為基礎去使用的,與表單名無關,只是會自動將表單傳遞過來的同名變量中的值放進對應的javabean變量中而已,另外經過我的測試,將表單中的isAceept設置為flag后,由于name不對應,所以獲取不到它的值,會報空指針異常,假如你之前獲取成功了,應該是因為你沒有刷新reg.jsp,直接返回并測試的。

0 回復 有任何疑惑可以回復我~

我也有這個疑問,然后我理了一下思路,你看看能不能幫到你,雖然說得有點啰嗦,但希望你跟著我的思路去對應看一下代碼的位置,以及先后順序,才能更好理解。

1.先搞清楚每個頁面及類的含義:

reg.jsp —— 用戶填寫表單的界面

RegServlet.java —— 暫時想象成?加工廠

users.java —— 用戶信息類(即javabean,想象成?模型

userInfo.jsp —— 是servlert的dopost()重定向到的頁面(及展示獲取信息后的頁面)

這里的跳轉順序:

reg.jsp —— ?RegServlet.java ——userInfo.jsp 【在使用?加工廠的途中,調用模型,對模型進行寫讀

------------------------------------------------------------------------------------------------------------

2.關于flag與isAcccept出現的位置?[以老師最后修改后測試成功來解釋]

reg.jsp —— <input name="isAccpet">

RegServlet.java —— ?String IsAccept;?? 以及 if(IsAccept.indexOf("true"))?{......} else{........}

users.java —— ?private boolean flag; 以及get/set方法為getFlag()/setFlag()

userInfo.jsp —— ?<jsp:getproperty name ="regUser" ?property="flag">

-------------------------------------------------------------------------------------

3.結論

我想你知道<jsp:getproperty >這個用法是獲得javabean的屬性值的吧

所以<jsp:getproperty name ="regUser" ?property="flag">?

?這個flag值只對應users.java 這個javabean里面的變量名

即這里的userInfo.jsp、users.java頁面都是用flag

而RegServlet類中的?if(request.getParameterValues("isAccept")!=null)?這里的isAccept是reg.jsp頁面中表單提交過來的,所以這里的isAccept對應的是reg.jsp 頁面中的 <input name="isAccpet">,而不是用flag



0 回復 有任何疑惑可以回復我~

課程里修改了一次Users類的屬性的原因是這樣,因為對于bool類型的屬性,用編譯器的簡便方法生成對應的set方法時,并不像其他類型,會是set+屬性名,而是is+屬性名。為了避免理解問題,更換了屬性名,并且重命名了set方法。isAccept只是在RegServlet中的doPost方法中聲明的局部變量,一個String類型的變量,而if語句的作用是判斷表單傳遞的參數是否為空,注意表單中條款項的 name也改為isAccept。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

flag 和isAccept

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號