国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

JSF通過URL來傳遞參數(shù)

開發(fā) 后端
本文介紹JSF可以通過URL來傳遞參數(shù),在Backing Bean里可以通過ValueBinding的getValue取得URL參數(shù)。

當(dāng)初看上JSF,是因?yàn)榭粗辛藥讉€(gè)好處:

1、獲取或顯示表單數(shù)據(jù)時(shí)用相同的EL即可,JSF之前的EL只能get不能set;

2、MyFaces實(shí)現(xiàn)里面有很多很“炫”的組件,例如下拉菜單,樹型控件,日期選擇控件等等,使用極其方便。

于是就在一個(gè)小項(xiàng)目中使用JSF開發(fā),用著就發(fā)現(xiàn)其實(shí)這個(gè)東西也帶來了很多比以前更麻煩的地方,就拿很常見的數(shù)據(jù)庫操作——查詢、修改、插入、刪除來說明使用JSF來實(shí)現(xiàn)有什么麻煩:

1)查詢。對(duì)于小數(shù)據(jù)量,用一個(gè)dataTable就什么都搞定了。可是大數(shù)據(jù)量分頁就比較麻煩了,因?yàn)閐ataTable的分頁是把所有數(shù)據(jù)都取出來然后再一頁頁顯示,而大數(shù)據(jù)量下一般是要看哪一頁就取哪一頁。網(wǎng)上有個(gè)通用的分頁存儲(chǔ)過程,只要把一系列參數(shù)(頁碼,排序依據(jù),每頁大小等)傳給它,就能獲得某一頁的數(shù)據(jù)。如果直接通過URL來傳遞參數(shù),服務(wù)器根據(jù)參數(shù)來調(diào)用存儲(chǔ)過程,是很方便的事情。可是JSF卻不通過URL來傳遞參數(shù)了,整個(gè)頁面處理的過程也比較復(fù)雜,沒有以前那樣直觀。有人改了一下dataModel的實(shí)現(xiàn)方式,使它每次只取一頁的數(shù)據(jù),效果是達(dá)到了,但要跳到某一頁,卻只能點(diǎn)鏈接,不能通過輸入U(xiǎn)RL來到達(dá)了(也就是不能把某一頁添加到收藏夾里了)。

這兩天做了一些試驗(yàn),在JSF里還是可以通過URL來傳遞參數(shù)的,在Backing Bean里可以通過ValueBinding的getValue取得 URL參數(shù),然后根據(jù)參數(shù)來從數(shù)據(jù)庫中取得相應(yīng)的內(nèi)容,生成某個(gè)對(duì)象的bean,再在頁面上顯示出來。不過這樣一來,似乎就跟servlet差不多了。
如果可以通過配置來設(shè)定表單提交是get方式還是post方式就好了。可是目前一律只能post,這樣造成的后果除了不能收藏,不能刷新(會(huì)提示是否重新提交數(shù)據(jù))之外,還會(huì)使瀏覽器的后退功能失效。

2)修改。在datatable中把數(shù)據(jù)顯示出來后,可以每一行加一個(gè)commanButton,在它的action method中調(diào)用dataModel的getRowData()方法來得到該行的數(shù)據(jù),把數(shù)據(jù)保存在一個(gè)request范圍的bean里面,再轉(zhuǎn)向到另一個(gè)頁面通過可編輯表單來顯示該bean的內(nèi)容,在那里就可以修改、提交了。由于是使用了forward方式轉(zhuǎn)向,所以u(píng)rl顯示的頁面還是數(shù)據(jù)顯示的那個(gè)頁面,只要一刷新,就又回到數(shù)據(jù)顯示那一頁而不是修改那一頁了;如果不想修改,按一下瀏覽器的后退按鈕,雖然回到了數(shù)據(jù)顯示的那一頁,但上面的 commandButton已經(jīng)失效,例如點(diǎn)擊修改按鈕,沒有任何反應(yīng),必須把那一頁刷新一下再點(diǎn)才有效。

為了解決這個(gè)問題,我采用了URL來傳遞參數(shù)的方法。通過在URL中指定ID來說明要修改的是哪個(gè)對(duì)象,在修改頁面的backing bean的構(gòu)造函數(shù)中,讀取URL參數(shù)來獲得ID,然后通過查詢數(shù)據(jù)庫得到該對(duì)象的其他內(nèi)容,再顯示在頁面上。這樣就可以刷新,可以后退。

3)新增。新增跟修改可以用同一個(gè)頁面來顯示,只是commandButton對(duì)應(yīng)不同的action method,例如“修改”按鈕對(duì)應(yīng)的是update,“新增”按鈕對(duì)應(yīng)的是create,在兩個(gè)method里分別使用數(shù)據(jù)庫的update語句和 insert語句即可。新增的時(shí)候是沒有ID的,修改的時(shí)候則已經(jīng)有了ID。

4)刪除。在顯示數(shù)據(jù)的dataTable里,每行可以添加一個(gè)commandButton,在它的action method里,讀取該行數(shù)據(jù),得到ID后執(zhí)行SQL的DELETE語句即可,比較簡單。

無論是做什么,都離不開三個(gè)東西:頁面,配置文件,Backing Bean。頁面是表現(xiàn)層的東西,負(fù)責(zé)把頁面上的東西與Backing Bean聯(lián)系起來。配置文件則指定在頁面上使用的Backing Bean的名字、類、使用范圍,還有導(dǎo)航規(guī)則(Navigation Rules)。Backing Bean就是程序的邏輯部分了。即使實(shí)現(xiàn)最簡單的功能,例如顯示某個(gè)變量的值,這三個(gè)東西都是必不可少的。

修改頁面的時(shí)候,雖然不用重啟服務(wù)器,但必須在新的session里才能看出效果來,最簡單的辦法就是把瀏覽器關(guān)掉,打開一個(gè)新的,查看結(jié)果。修改了配置文件和backing bean 就必須重啟服務(wù)器了。所以調(diào)試JSF是很麻煩的。 

【編輯推薦】

  1. JSF標(biāo)記與JSTL標(biāo)記混合使用
  2. 簡單介紹JSF生命周期
  3. 升級(jí)JSF1.2的艱難之旅
  4. 簡述學(xué)習(xí)JSF小記
  5. JSF應(yīng)用程序的生命周期
責(zé)任編輯:佚名 來源: JavaEye
相關(guān)推薦

2010-09-26 17:21:07

2010-09-10 09:55:13

SQL參數(shù)變量

2009-06-01 09:30:51

JSF2.0FaceletsAjax4JSF

2009-09-23 17:56:45

JSF入門

2015-09-08 10:16:41

Java參數(shù)按值傳遞

2012-02-21 14:04:15

Java

2010-06-09 09:15:58

JSF 2Ajax組件

2009-06-25 11:11:25

控制JSF切入點(diǎn)

2023-03-29 23:23:00

MyBatis參數(shù)框架

2017-12-05 08:53:20

Golang參數(shù)傳遞

2009-09-04 11:00:13

通過C#引用傳遞

2009-06-26 13:48:57

G4JSFGWTJSF

2009-06-26 14:06:08

JSF基礎(chǔ)框架

2021-09-06 07:45:08

LinuxLinux內(nèi)核

2011-03-16 16:06:46

iptables日志MySQL

2021-07-12 06:23:38

抓包gRpcRPC 框架

2009-12-17 17:04:09

Ruby函數(shù)參數(shù)傳遞

2024-02-22 09:21:09

.NETActionOptions

2025-05-16 10:19:35

緩存架構(gòu)開發(fā)

2009-06-26 10:54:24

JSF技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

成人国产亚洲精品a区天堂华泰| 欧美va日韩va| 日本美女爱爱视频| 国产精品主播| 91成人在线视频| 日韩成人精品| 精品国免费一区二区三区| 亚洲裸体视频| 亚洲777理论| 看黄色免费网站| 中文字幕在线一区| 艹b视频在线观看| 国产午夜亚洲精品午夜鲁丝片 | 另类中文字幕国产精品| 亚洲国产精品久久久久久| 国产午夜精品久久久久免费视| 欧洲一区二区三区免费视频| 情趣网站视频在线观看| 亚洲第一成年网| 在线观影网站| 91黄色免费观看| 米奇精品一区二区三区| 91精品国产综合久久婷婷香蕉 | 国产精品手机在线| 韩国av一区| 国产精品制服诱惑| 一区二区久久| 视频一区免费观看| 国产综合一区二区| 五十路熟女丰满大屁股| 26uuu国产日韩综合| 日韩欧美在线播放视频| 国产精品视频在线看| 色久视频在线观看| 日韩欧美中文在线| 欧美卡一卡二| 北条麻妃99精品青青久久| 这里视频有精品| 国产精品美女免费| 亚洲电影成人| 一本—道久久a久久精品蜜桃| 成人精品免费看| 国产91大片| 人人九九精品视频| 久精品免费视频| 欧美色图国产精品| 久久精品国产第一区二区三区最新章节| 日本aⅴ亚洲精品中文乱码| 久久av综合网| 亚洲综合男人的天堂| 搞黄网站在线观看| 久久不射电影网| 中出一区二区| 特色特色大片在线| 国产精品毛片久久久久久| 同心难改在线观看| 亚洲男人天堂古典| 精品国产一级毛片| 中文字幕日韩一区二区三区| 国产日本欧洲亚洲| 国产毛片在线看| 国产视频亚洲精品| 少妇精品导航| 欧美亚洲一级二级| 国产网站一区二区三区| 久久电影视频| 尤物99国产成人精品视频| 欧美在线电影| 日韩精品久久久毛片一区二区| www成人在线观看| 日本在线人成| 久久久久久久久网站| 丝袜美腿一区二区三区| 中文字幕免费中文| 日韩激情第一页| 久久久久蜜桃| 无码精品国产一区二区三区免费| 一本大道久久a久久综合| 91嫩草国产线观看亚洲一区二区 | 欧美日韩美女一区二区| 精品视频一区二区三区| 国产日韩欧美精品| 亚洲国产精品传媒在线观看| 精品日韩av| 国产v综合ⅴ日韩v欧美大片| 国产美女一区二区| 国产精品一级伦理| 91av在线视频观看| 粉嫩一区二区三区在线看| 色开心亚洲综合| 国产精国产精品| 久久综合色之久久综合| bl视频在线免费观看| 99国产超薄肉色丝袜交足的后果| 国产精品高颜值在线观看| 2018中文字幕一区二区三区| 精品无码三级在线观看视频| 小小水蜜桃在线观看| 欧美大尺度在线观看| 日韩电影在线观看一区| 男女污污视频在线观看| 欧美在线视频导航| av一二三不卡影片| 91丝袜在线| 美乳视频一区二区| 欧美性生交xxxxxdddd| 欧美做受69| 日韩一级片播放| 中文字幕亚洲综合久久| 国内精品久久久久影院一蜜桃| 国内精品久久久久久野外| 国产免费一区视频观看免费| 国产精品无人区| 精品国产亚洲一区二区三区大结局| 午夜精品区一区二区三| 欧美视频中文一区二区三区在线观看| 日本午夜一区| 中文字幕在线影院| 国产啪精品视频| 亚洲一区二区四区蜜桃| 极品国产人妖chinesets亚洲人妖 激情亚洲另类图片区小说区 | 欧美专区福利在线| 91在线观看高清| 欧美最新精品| 亚洲制服中文| 亚洲国产精品成人va在线观看| 国产精品一页| 麻豆网站在线| 精品一区二区三区视频日产| 欧美曰成人黄网| 国产一区日韩一区| 欧美成人免费| 99久久精品免费看国产一区二区三区| 亚洲午夜国产一区99re久久| 成久久久网站| 色网站在线免费观看| 成人免费网站在线| 91传媒视频在线播放| 欧美亚洲不卡| 超碰公开在线| 亚洲三区在线| 一区三区二区视频| 欧美男人天堂| 国产欧美一区二区三区另类精品 | 亚洲成人精品久久久| 日本不卡在线视频| 成人影院在线视频| 男人的天堂avav| 日韩三级影视基地| 中文字幕欧美日韩一区| 国产aⅴ精品一区二区三区久久| 最近最好的中文字幕2019免费| 国产精品久久二区| 日本高清成人免费播放| 午夜在线一区二区| 激情国产在线| 女人另类性混交zo| 国产精品免费一区二区三区都可以| 欧美视频中文字幕在线| 日日夜夜精品视频天天综合网| 亚洲精品成人图区| 亚洲最大综合网| 亚洲资源在线看| 亚洲黄色有码视频| 中文字幕成人av| 国产一区日韩一区| 午夜久久中文| 91污色多多| 欧美日韩精品免费看 | 亚洲欧洲精品一区二区三区不卡| 日本一区二区在线看| 久热国产在线| bt天堂新版中文在线地址| 国产91|九色| 欧美日本一区二区| www.亚洲免费av| 99欧美视频| 成人黄色免费短视频| 日本成本人片免费观看| 日日噜噜噜噜夜夜爽亚洲精品| 久久五月情影视| 日本乱码高清不卡字幕| 国产99一区视频免费 | 国产va免费精品高清在线| 欧美日韩在线播放三区| 国产高清不卡一区二区| 不卡中文一二三区| 日本免费一区二区六区| 最大av网站| 亚洲精品一区二区毛豆| 国产成人精品免高潮在线观看| 精品国产乱码久久久久久1区2区| 欧美国产综合一区二区| 新狼窝色av性久久久久久| 精品国产18久久久久久洗澡| 在线不卡日本v二区707| 美女激情网站| 妺妺窝人体色www看人体| 91九色视频在线观看| 欧美国产精品人人做人人爱|