flag 和isAccept
在reg.jsp里將isAccept改為flag后, 為什么RegServlet.java中if(request.getParameterValues("isAccept")!=null)不用該,改為flag后反而錯(cuò)誤,這個(gè)isAccept難道不是對應(yīng)表單中flag?
在reg.jsp里將isAccept改為flag后, 為什么RegServlet.java中if(request.getParameterValues("isAccept")!=null)不用該,改為flag后反而錯(cuò)誤,這個(gè)isAccept難道不是對應(yīng)表單中flag?
2016-11-13
舉報(bào)
2017-03-05
因?yàn)閡sebean是以javabean中的變量名為基礎(chǔ)去使用的,與表單名無關(guān),只是會自動將表單傳遞過來的同名變量中的值放進(jìn)對應(yīng)的javabean變量中而已,另外經(jīng)過我的測試,將表單中的isAceept設(shè)置為flag后,由于name不對應(yīng),所以獲取不到它的值,會報(bào)空指針異常,假如你之前獲取成功了,應(yīng)該是因?yàn)槟銢]有刷新reg.jsp,直接返回并測試的。
2016-11-19
我也有這個(gè)疑問,然后我理了一下思路,你看看能不能幫到你,雖然說得有點(diǎn)啰嗦,但希望你跟著我的思路去對應(yīng)看一下代碼的位置,以及先后順序,才能更好理解。
1.先搞清楚每個(gè)頁面及類的含義:
reg.jsp —— 用戶填寫表單的界面
RegServlet.java —— 暫時(shí)想象成?加工廠
users.java —— 用戶信息類(即javabean,想象成?模型)
userInfo.jsp —— 是servlert的dopost()重定向到的頁面(及展示獲取信息后的頁面)
這里的跳轉(zhuǎn)順序:
reg.jsp —— ?RegServlet.java ——userInfo.jsp 【在使用?加工廠的途中,調(diào)用模型,對模型進(jìn)行寫讀】
------------------------------------------------------------------------------------------------------------
2.關(guān)于flag與isAcccept出現(xiàn)的位置?[以老師最后修改后測試成功來解釋]
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.結(jié)論
我想你知道<jsp:getproperty >這個(gè)用法是獲得javabean的屬性值的吧
所以<jsp:getproperty name ="regUser" ?property="flag">?
?這個(gè)flag值只對應(yīng)users.java 這個(gè)javabean里面的變量名
即這里的userInfo.jsp、users.java頁面都是用flag
而RegServlet類中的?if(request.getParameterValues("isAccept")!=null)?這里的isAccept是reg.jsp頁面中表單提交過來的,所以這里的isAccept對應(yīng)的是reg.jsp 頁面中的 <input name="isAccpet">,而不是用flag
2016-11-13
課程里修改了一次Users類的屬性的原因是這樣,因?yàn)閷τ赽ool類型的屬性,用編譯器的簡便方法生成對應(yīng)的set方法時(shí),并不像其他類型,會是set+屬性名,而是is+屬性名。為了避免理解問題,更換了屬性名,并且重命名了set方法。isAccept只是在RegServlet中的doPost方法中聲明的局部變量,一個(gè)String類型的變量,而if語句的作用是判斷表單傳遞的參數(shù)是否為空,注意表單中條款項(xiàng)的 name也改為isAccept。