text:
Theo đó, Cục thuế HàNôịđề nghị các DN trên địa bàn nghiên cứu kỹ các qui định cụ thể tại Luật số 31/2013/QH13 và hướng dẫn tại Công văn số 17557/BTC-TCT ngày 18/12/2013 của Bộ Tài chính để triển khai thực hiện theo đúng quy định của pháp luật.
Công điện của Cục thuế Hà Nội yêu cầu: Phòng Tuyên truyền- Hỗ trợ người nộp thuế tổ chức tuyên truyền rộng rãi nội dung hướng dẫn tại Công văn số 17557/BTC-TCT ngày 18/12/2013 của Bộ Tài chính trên các phương tiện thông tin đại chúng để người nộp thuế biết và thực hiện đúng quy định. Việc tuyên truyền được thực hiện trên toàn bộ địa bàn và trong suốt quá trình triển khai.
Chuyển tải công văn hướng dẫn của Cục thuế Hà Nội- thông báo nội dung hướng dẫn tại công văn của Bộ Tài chính, để các phòng thuộc Văn phòng cục, các chi cục thuế quận, huyện, thị xã chuyển tải tới người nộp thuế.
Niêm yết công khai nội dung "Thông báo về việc xác định mức doanh thu năm 2013 để áp dụng phương pháp tính thuế GTGT năm 2014" tại Bộ phận một cửa cơ quan thuế các cấp.
Phòng Tổng hợp nghiệp vụ dự toán thông báo trực tiếp bằng điện thoại tới các đồng chí Chi cục trưởng các Chi cục thuế quận, huyện, thị xã về các nội dung chỉ đạo triển khai của Cục thuế TP Hà Nội; Xây dựng mẫu báo cáo về nội dung sau để các phòng và các Chi cục thuế thực hiện...
Các phòng kiểm tra thuế và các chi cục thuế thực hiện chuyển tải nội dung hướng dẫn của Bộ Tài chính, "Thông báo về việc xác định mức doanh thu năm 2013 để áp dụng phương pháp tính thuế GTGT năm 2014" và mẫu 06/GTGT tới người nộp thuế theo các hình thức: thư điện tử/ gửi trực tiếp/gửi qua đường bưu điện...
Đây là nội dung hết sức cấp bách có liên quan đến công tác quản lý thuế, Cục thuế TP Hà Nội yêu cầu các phòng thuộc Văn phòng cục, các chi cục thuế quận, huyện, thị xã khẩn trương triển khai ngay các nội dung đã chỉ đạo tại công văn này.
Theo Tài Chính Việt Nam - Vũ Long
Nhiều ngân hàng tăng nhẹ giá bán USD
MediaMart tặng quà tới 2,5 triệu cho sinh…
Ngân hàng Thụy Sĩ lên tiếng sau 200 năm im…
Cuối tuần, vàng trong nước đứng giá
Giá vàng sẽ tiếp tục chìm sâu do lo ngại Fed…
Lãng mạn sắc thu vàng Châu Âu
Nga cho xe tiến vào Ukraine, chứng khoán Âu, Mỹ lao đao
Để bền vững, các trường đại học nên chuyển sang phi lợi nhuận
Sẵn tiền, săn mua đất vàng làm của để dành
Phó Thủ tướng Vũ Văn Ninh: Tàu cũ, tàu nhập không nằm trong diện ưu tiên
Lừa dối khách hàng, Bank of America bị phạt 16,65 tỷ USD
Tạo mục mới Top mục tự tạo
Nhúng Baomoi vào web của bạn
Thống kê & So sánh báo điện tử
Việc tổng hợp và sắp xếp các thông tin trên Báo Mới đều được thực hiện tự động bởi một chương trình máy tính.
Giấy phép số 46/GP-TTĐT cấp ngày 13/01/2012
Báo Mới có bản quyền thuộc Công ty Cổ phần Công nghệ EPI.

Cache-Control: no-cache

Pragma: no-cache


text:
Chào mừng bạn đến với Bách Khoa Forum!
Cộng đồng sinh viên Bách Khoa Hà Nội
Bạn đang xem diễn đàn dưới tư cách là khách nên sẽ có nhiều hạn chế. Đăng ký hoặc
Nếu bạn chưa có tài khoản thì hãy bỏ ít phút đăng ký để cùng tham gia thảo luận và giao lưu với chúng tôi nhé.
[Hướng dẫn] Truy cập diễn đàn BKA.VN trên thiết bị di động - Update 2013
Thảo luận trong 'Nội qui & Hướng dẫn' bắt đầu bởi Min Tuan, 9 Tháng một 2013.
Trang 1 của 2 trang
Trang 1 của 2 trang

markdown:
**Chào mừng bạn đến với Bách Khoa Forum!**
Cộng đồng sinh viên Bách Khoa Hà Nội
Bạn đang xem diễn đàn dưới tư cách là khách nên sẽ có nhiều hạn chế.
[Đăng ký](register/) hoặc
Nếu bạn chưa có tài khoản thì hãy bỏ ít phút đăng ký để cùng tham gia thảo luận và giao lưu với chúng tôi nhé.
# [Hướng dẫn] Truy cập diễn đàn BKA.VN trên thiết bị di động - Update 2013
Thảo luận trong '
[Nội qui & Hướng dẫn](forums/noi-qui-huong-dan.147/)' bắt đầu bởi [Min Tuan](members/min-tuan.1/), [9 Tháng một 2013](threads/truy-cap-dien-dan-bka-vn-tren-thiet-bi-di-dong-update-2013.55740/).
Trang 1 của 2 trang
Trang 1 của 2 trang

WARC-Type: response

Content-Type: application/http; msgtype=response

Cache-control: private, max-age=0

X-Frame-Options: SAMEORIGIN

Content-Encoding: gzip

Vary: Accept-Encoding,User-Agent

Connection: close

Content-Type: text/html; charset=UTF-8


text:
Hồ Chí Minh và những ngày đi tìm đường cứu nước
Ở bến Nhà Rồng - TP Hồ Chí Minh có một khu di tích quy tập những hình ảnh về cuộc đời và hoạt động của Chủ tịch Hồ Chí Minh. Cũng dễ hiểu, bởi từ nơi đây, ngày 5/6/1911, một người thanh niên yêu nước Việt Nam có tên là Nguyễn Tất Thành đã quyết định ra đi tìm đường cứu nước.
Nhà Rồng (nơi Bác Hồ đã ra đi tìm đường cứu nước). Ảnh: Phạm Lợi.
Mang tên mới: Văn Ba, anh xin được chân người phụ bếp trên một chiếc tàu biển của Pháp Latusơ Tơrêvin. Từ đây, hoà mình trong đời sống của thợ thuyền, người thanh niên Văn Ba bắt đầu cuộc hành trình tìm đường cứu nước thoát khỏi ách nô lệ của chế độ thực dân.
Cuộc hành trình 30 năm ròng, đi qua 28 quốc gia, làm nên sự nghiệp lớn, xuất phát từ một anh phụ bếp Văn Ba trên một chiếc tàu vận tải hàng hải. Tuy lao động vất vả suốt ngày, suốt tháng không có ngày nghỉ, ông chủ chỉ trả cho anh mỗi tháng không quá 50 phrăng, là thứ tiền công rẻ mạt nhất cho một lao động, nhưng anh không nản lòng, chê trách. Mà trái lại, với thái độ cởi mở, lễ phép với mọi người; từ người lao động đến những du khách thượng hạng đi trên tàu, ai cũng quý mến anh, sẵn sàng giúp đỡ mỗi lần anh muốn biết về một điều gì đó. Xong việc, anh tranh thủ học thêm hoặc đọc sách hay tự học ngoại ngữ. Tàu cập bến một số nước, anh Ba lên bờ, không phải như những người khác, bao nhiêu tiền dồn vđo việc ăn chơi phung phí; anh dành thời gian đi sâu tìm hiểu hiện trạng thực tế xã hội. Anh chợt nhận ra rằng, mỗi quốc gia mỗi vẻ khác nhau về phong cảnh và con người; nhưng về xã hội thì đâu đâu cũng có người nghèo, người giàu, đâu cũng có các tệ nạn xã hội, đâu cũng có người tốt và kẻ xấu.
Anh tiêu tiền hợp lý, chỉ sử dụng tiền khi cần thiết, còn dành một ít tiền gửi về cho người cha ở nhà đang còn gặp nhiều khó khăn. Trên đất Pháp, anh viết thư gửi Bộ trưởng Bộ Thuộc địa Pháp xin vào học Trường Thuộc địa. Đây không chỉ là trường đào tạo học sinh sau này phục vụ chính sách cai trị của Pháp mà còn đào tạo một số nghề chuyên môn như điện báo, kế toán, xưởng trưởng... Anh ký tên Nguyễn Tất Thành, trong thư anh ghi: "ý muốn trở thành có ích cho đồng bào tôi, muốn cho họ được hưởng những lợi ích của học thức". Song lời yêu cầu thiết tha đó không được chấp nhận. Một lần nữa, anh lại xuống tàu tiếp tục cuộc hành trình qua những châu lục khác.
Trên chiếc tàu biển của hãng Sácgiơ Rêminy nước Pháp, Nguyễn Tất Thành bắt đầu chuyến hành trình qua các nước bên bờ biển châu Phi. Khi tàu cập bến, anh thường tranh thủ thời gian rỗi lên thăm thành phố cảng, dạo ngắm phong cảnh châu Phi và tìm hiểu đời sống kinh tế, xã hội của lục địa đen này. Anh đã được chứng kiến nhiều cảnh đau xót. Thân phận của nô lệ da đen thật kinh khủng. Họ là người mà không được sống cuộc sống của con người. Họ bị hành hạ cả thể xác lẫn tinh thần, họ là thứ hàng hoá trao đổi mua bán giữa các ông chủ buôn người công khai được pháp luật thừa nhận. Bọn chủ xem tính mạng những người nô lệ da đen là thứ trò chơi tiêu khiển, là những đồ dùng khi cần thì sử dụng, khi không cần thì vứt đi không tiếc. Trước những cảnh đời đau xót đó, Nguyễn Tất Thành đã có lúc xúc động và khóc. Người đau nỗi đau chung của nhân loại cho thân phận người nô lệ, cho số phận của người dân Việt Nam bị áp bức, bị mất quyền tự do của con người.
Rời châu Phi, để lại nỗi buồn của những cảnh đời, những băn khoăn suy tư về một câu hỏi lớn: Làm thế nào để trên thế giới bớt đi sự bất công? Từ châu Phi, anh đến châu Mỹ, đi qua Mactinich, Urugoay, Achentina, rồi lần đầu tiên đặt chân lên nước Mỹ, nơi anh thường được nghe về một tuyên ngôn độc lập nổi tiếng cả thế giới. Người muốn dừng chân trên đất Mỹ một thời gian để tìm hiểu bản chất của sự độc lập kiểu Mỹ như thế nào.
Thời gian đầu Nguyễn Tất Thành đến nhận một công việc làm bánh tại một gian bếp của khách sạn Omni Parker House ở thành phố Boston. Tại đây, anh thường lui tới khu vực Háclem, nơi ở của người nghèo, chủ yếu là người da đen. Anh làm quen với các phong trào đấu tranh với giới chủ, từ những cuộc quyên góp tiền gửi về giúp đỡ quê hương châu Phi. Có lần khi trả lời nhà báo A.Luy Xtơrông, Bác Hồ nhớ lại thời kỳ này: "Khi ấy tôi chưa hiểu lắm về chính trị, nhưng tôi cảm thấy họ đều là những người nghèo khổ đang mong muốn được tự do. Họ có bao nhiêu tiền cũng bỏ ra trong lúc quyên góp, thế là tôi dốc cả tiền túi của mình ra góp vào đấy".
Cuối năm 1913, Nguyễn Tất Thành rời nước Mỹ sang nước Anh. Thời kỳ đầu gặp nhiều khó khăn về kinh tế nên phải tạm xin việc quét tuyết cho một trường học, rồi chuyển sang làm nghề đốt lò. Tiền thu chẳng được bao nhiêu vừa đủ tiền thuê nhà, tiền học thêm tiếng Anh, còn lại chỉ đủ những bữa ăn thanh đạm. Sau đó nhờ có người giới thiệu, anh chuyển đến làm thuê ở khách sạn Cáclơtơn. ở đây có ông vua đầu bếp nổi tiếng Excôpphiê người Pháp. Anh Thành nhận việc rửa bát đĩa, xoong nồi, lao động chăm chỉ, tính tình cởi mở, đặc biệt rất có ý thức trong công việc. Mỗi lần phục vụ bữa tiệc lớn của những người giàu có, thức ăn thừa nhiều, anh Thành không vứt những thức ăn còn có thể dùng được, mà gói lại mang ra đường cho những người nghèo.
Việc làm đó được ông Excôpphiê rất chú ý. Là người có tư tưởng tiến bộ nên ông rất quý anh và ông đã giúp anh cách làm bánh - một bí quyết nghề nghiệp. Có công việc mới, anh Thành vừa đỡ vất vả lại có thời gian để học thêm tiếng Anh. Lúc này ở nước Anh đã hình thành một tổ chức gồm những người châu á, có tư tưởng tiến bộ, gọi là "Hội những người lao động hải ngoại". Anh Thành trở thành hội viên của Hội vì Hội này ủng hộ cuộc đấu tranh của các dân tộc thuộc địa, trong đó có dân tộc Việt Nam.
Thời kỳ ở nước Anh, ngoài điều kiện thuận lợi cho anh học tiếng, điều kiện xã hội và chính trị đương thời còn giúp anh hiểu biết nhiều về chế độ chính trị của xã hội tư bản, về đấu tranh giai cấp giữa công nhân và tư sản... Tuy điều kiện rất tốt song có điều những thông tin về quê hương quá ít, ở nước Pháp - nước đang trực tiếp đô hộ dân tộc mình - sẽ có nhiều thông tin về quê hương. Hơn nữa nhờ liên lạc được với cụ Phan Chu Trinh và một số người Việt Nam đang ở Paris, Nguyễn Tất Thành càng hiểu hơn điều kiện thuận lợi khi mình có mặt ở Paris, do đó anh quyết định trở lại nước Pháp.
Thời kỳ này cụ Phan Chu Trinh đang ở Pháp cũng rơi vào hoàn cảnh khó khăn chung. Cụ phải làm nghề ảnh để có thu nhập sinh sống. Thời kỳ mới đến Paris, nhờ sự quen biết trước nên cụ Phan đã giúp anh Thành làm nghề thợ ảnh. Để giảm bớt khó khăn chung, cụ Phan cùng đến ở nhà của Phan Văn Trường tại số 6 Vila đờ Gôbơlanh, quận 13 Paris. Dần dần ngôi nhà này trở thành nơi hội tụ của người Việt Nam ở Paris. Thủ đô Paris là trung tâm chính trị xã hội không những của châu Âu mà còn của cả thế giới. Các đảng phái đại diện quyền lợi chính trị, kinh tế của giai cấp mình đua nhau thi thố làm cho không khí xã hội Paris càng thêm sôi động.
Qua một thời gian theo dõi diễn biến chính trị xã hội ở Pháp và tích cực liên hệ với những người Pháp, người Việt có tư tưởng tiến bộ, đặc biệt anh nhận thấy trong nhiều đảng phái chính trị thì Đảng Xã hội Pháp là Đảng tiến bộ - giương cao ngọn cờ của cuộc Đại cách mạng tư sản Pháp - Tự do, Bình đẳng, Bác ái. Do đó, Nguyễn Tất Thành tự nguyện tham gia Đảng Xã hội Pháp vào đầu năm 1919.
Chiến tranh thế giới kết thúc. Nhiều tổ chức chính trị tiến bộ gửi yêu sách, nguyện vọng đến Hội nghị. Những người Việt Nam ở Pháp có Phan Chu Trinh, Phan Văn Trường và Nguyễn Tất Thành đã thảo luận thống nhất Bản yêu sách tám điểm của những người yêu nước An Nam, ký tên Nguyễn Ái Quốc và từ đó tên gọi Nguyễn Ái Quốc xuất hiện. Nhờ nhạy cảm về chính trị và được sự chuẩn bị chu đáo, bản yêu sách đã được công bố công khai trên báo chí trước ngày khai mạc Hội nghị Vecxay. Do đó, nó nghiễm nhiên được đặt trước các nguyên thủ quốc gia tham gia Hội nghị và nhất là công luận đã lên tiếng thì nhân dân Pháp và các lực lượng tiến bộ sẽ ủng hộ. Nội dung yêu sách nói lên nguyện vọng của các dân tộc nhược tiểu, hy vọng những lời cam kết chính thức và quan trọng của các cường quốc về chế độ nhân đạo, công lý sẽ được thực hiện, những yêu sách này là những nguyện vọng chính đáng và nhu cầu tối thiểu cần được hưởng của một dân tộc, của một con người bình thường được sống trong thời đại.
Một sự kiện chính trị lớn khác trong cuộc đời hoạt động cách mạng của Nguyễn ái Quốc, đó là ngày 16 và 17-7-1920, trên Báo Nhân đạo của Đảng Xã hội Pháp đăng bài "Luận cương về vấn đề dân tộc và thuộc địa" của V.I Lênin đã gây xúc động lớn đến Nguyễn ái Quốc. Sau này Người nhớ lại: "Trong luận cương ấy có những chữ chính trị khó hiểu, nhưng cứ đọc đi, đọc lại nhiều lần, cuối cùng tôi cũng hiểu được phần chính. Luận cương của Lênin làm cho tôi rất cảm động, phấn khởi, sáng tỏ, tin tưởng biết bao! Tôi vui mừng đến phát khóc lên. Ngồi một mình trong buồng mà tôi nói to lên như đang nói trước quần chúng đông đảo: "Hỡi đồng bào bị đày đọa đau khổ! Đây là cái cần thiết cho chúng ta". Từ đó tôi hoàn toàn theo Lênin, tin theo Quốc tế thứ ba".
Nhờ những hoạt động tích cực đó mà Đảng Cộng sản Pháp mới có những động thái như thông qua "Lời kêu gọi những người bản xứ thuộc địa" do Nguyễn Ái Quốc soạn thảo, vạch trần những chế độ hà khắc của chủ nghĩa thực dân đối với những người bản xứ, phải chịu hai tầng áp bức - một là người lao động, hai là người bản xứ - kêu gọi đoàn kết đấu tranh chống kẻ thù chung. Trong cuộc đấu tranh của những người lao động bản xứ có sự ủng hộ của Đảng Cộng sản Pháp... Lời kêu gọi được Nguyễn Ái Quốc viết bằng tiếng Việt, in truyền đơn, bí mật gửi về Việt Nam, thức tỉnh phong trào cách mạng trong nước.
Cũng trong những ngày trên đất Pháp, Người còn sáng lập ra "Hội Liên hiệp thuộc địa", nhằm tạo hợp lực lượng, đoàn kết các dân tộc thuộc địa với giai cấp công nhân chính quốc để đấu tranh chống kẻ thù chung. Đây là mặt trận liên minh các lực lượng dân tộc bị áp bức, lần đầu tiên xuất hiện ở Pháp do một lãnh tụ thuộc địa, đó là Nguyễn ái Quốc đứng ra tổ chức. ảnh hưởng của anh càng lớn lao trên diễn đàn quốc tế bao nhiêu thì mật thám càng ráo riết theo dõi hoạt động cách mạng của anh bấy nhiêu.
"Hội Liên hiệp thuộc địa" được chính thức thành lập ngày 26/6/1921 tại Paris. Hội xây dựng chương trình, điều lệ và cử ra Ban Chấp hành của Hội. Hội ra bản tuyên ngôn do Nguyễn ái Quốc soạn thảo. Đặc biệt Hội đã cho ra tờ báo Người cùng khổ (Le Paria). Nguyễn ái Quốc vừa là chủ nhiệm kiêm chủ bút, viết bài, sau này cả phát hành báo.
Ngày 1/4/1922, báo ra số đầu tiên. Trang đầu đăng lời kêu gọi giống như một tuyên ngôn của báo. Tài chính của báo do sự ủng hộ nhiệt tình của các đồng chí Pháp cũng như trụ sở báo, phương tiện... Nhà văn nổi tiếng Pháp H. Bácbuýt nhận đỡ đầu cho báo, các đồng chí M.Casanh, G.Lêuy... tham gia viết bài cho báo. Từ lúc ra đời cho đến lúc dừng hoạt động (4/1926), toàn bộ báo ra được 38 số là một sự cố gắng lớn, trong đó vai trò của Nguyễn Ái Quốc rất quan trọng.
Ngoài việc lo hoạt động của báo, Người còn viết nhiều bài trên các lĩnh vực: xã luận, bình luận, truyện ký, tiểu phẩm, tranh vẽ, đưa tin, dịch thuật... là một cây viết chính, là linh hồn tồn tại và phát triển của báo. Những bài viết của Nguyễn Ái Quốc tập trung tố cáo chế độ bóc lột của thực dân trên toàn thế giới trong đó có Việt Nam. Vạch trần những thủ đoạn, mánh khoé bóc lột tư bản như đặt ra nhiều thứ thuế phi lý, sinh ra các tệ nạn xã hội như thuốc phiện, rượu, bắt lính, chiếm đoạt ruộng đất... Người kêu gọi, muốn xoá những chế độ bất công đó không có gì khác hơn là đoàn kết các dân tộc, đứng lên đấu tranh giai cấp. Hoà cùng tiếng nói với Báo Nhân đạo của Đảng Cộng sản Pháp, Báo Người cùng khổ đã tạo thành một mặt trận thống nhất chung của nhân dân thuộc địa với giai cấp vô sản và nhân dân lao động Pháp chống chủ nghĩa tư bản.
Như vậy là từ một người yêu nước nhiệt tình cách mạng, Nguyễn Ái Quốc đã tìm thấy con đường cứu nước và dấn thân vào cuộc đấu tranh để thực hiện thắng lợi con đường đó. Sáu năm hoạt động ở Pháp, Nguyễn Ái Quốc từ người đi tìm đường trở thành người dẫn đường. Là đảng viên Cộng sản, trở thành người sáng lập Đảng Cộng sản Pháp, sau này sáng lập Đảng Cộng sản Việt Nam vào mùa xuân năm 1930. Năm 1941, sau vừa đúng 30 năm xa Tổ quốc, Bác Hồ của chúng ta đã trở về Tổ quốc lãnh đạo cách mạng Việt Nam vượt qua bao thác ghềnh và giành được độc lập vào mùa thu năm 1945

Content-Encoding: deflate

X-Compressed-By: HttpCompress

Cache-Control: public, max-age=3600

Content-Type: text/html; charset=utf-8


text:
Việt Nam
Đồng Bằng Sông Hồng
Hưng Yên
Bất kỳ
Bán thời gian
Toàn thời gian
Lâu dài
Hợp đồng
Tạm thời
Đào tạo
Tình nguyện
tai xe xe muc, Hưng Yên
Vinafco tuyển Lái xe tải
Hà Nội - Hưng Yên
Tuyển Lái Xe Tải 1 Tấn, Làm Việc Tại Hưng Yên
Hưng Yên
Nhân Viên Lái Xe Tải Chở Hàng
Lái Xe Tải Bằng C
Nhân Viên Lái Xe
Tuyển nhân viên KD dịch vụ cắt xẻ
Cong Ty TNHH Inox Thanh Nam (TNI)
-
Hưng Yên
Nhân Viên Lái Xe Nâng
Nhân Viên Kỹ Thuật - Xẻ Băng
Tp Hồ Chí Minh - Hưng Yên
Lái Xe Giám Đốc
Lái Xe
Hưng Yên
- 5.000.000-7.000.000₫ một tháng
ANZ Education thông báo tuyển nhân viên lái xe
Cần Tuyển Lái Xe Bằng D, E
Hưng Yên
- 3.000.000-5.000.000₫ một tháng
Lái Xe Chở Hàng (tuyển Gấp)
Lái Xe Nâng
trang:
1
| 2
| 3
>>
Giới thiệu Careerjet
|
Những tìm kiếm thường gặp
|
Điều khoản & điều kiện
|
Việc theo khu vực
|
Việc theo công ty
© 2014 Careerjet

markdown:
Hà Nội - Hưng Yên
thủy nội địa/ đường biển, với các phương tiện vận
**tải**đa dạng: ôtô **tải**các loại, **xe**kéo container, xà lan, tàu biển; Vận **tải**quá cảnh hàng hóa... Vị trí tuyển: Vinafco tuyển Lái **xe** **tải**Mô tả công việc - 10 Lái chạy **xe**1.4T Hà Nội và các tỉnh miền Bắc (làm việc **tại**Ngọc Hồi, Thanh Trì...
[Tuyển Lái Xe Tải 1 Tấn, Làm Việc Tại Hưng Yên](/job/f524b6071d7196b7a907340886147467.html)
Lái
**xe** **tải**1.25 tấn, chở hàng hóa theo yêu cầu của công ty, làm việc **tại**Hưng Yên. Yêu cầu công việc Chăm chỉ, nhiệt tình, có sức khỏe... về công việc, hãy gửi tin nhắn tới Nhà tuyển dụng để nhận được hồi đáp nhanh chóng qua hệ thống tin nhắn của MyWork. Tuyển Lái **Xe** **Tải**1 Tấn, Làm...
- Lái
**xe** **tải**chở hàng, - Yêu cầu thông thạo đường phố quanh khu vực Hà Nội. - Ưu tiên ứng viên khu vực Hưng Yên Quyền lợi: - **Mức**... ty TNHH vận **tải**hỗn hợp Việt Nhật số 1 tuyển Lái **xe**Công ty VJEC cần tuyển 2 Phiên Dịch, **mức**lương 7,000,000 đến 12,000,000 VND Nhà tuyển dụng...
| Ngày cập nhật: 25-02-2013 Chia sẻ: Lái
**Xe** **Tải**Bằng C - Công Ty TNHH Đầu Tư - Thương Mại Nhật Long Thông báo mywork nếu tin đăng tuyển có... việc làm Email: Việc làm liên quan Vận **tải**- Lái **xe**1,233,604 ứng viên 337,260 việc làm 183,470 nhà tuyển dụng 2,750,397 lượt...
liên quan đến
**xe**Quyền lợi: Đưởng hưởng **mức**lương phù hợp với công việc đảm nhận và khả năng Được đóng BHXH, BHYT ... theo luật lao động...Lái **xe**theo yêu cầu của Công ty: đi thị trường, Chịu trách nhiệm theo dõi, giám sát các hoạt động của **xe**, báo cáo kịp thời các vấn đề có...
[Tuyển nhân viên KD dịch vụ cắt xẻ](/job/1e959815df4bf7e0a2454e5f3f782deb.html)
Cong Ty TNHH Inox Thanh Nam (TNI)
-
[Hưng Yên](/viec-lam-tai-hung-yen-121830.html)
lợi được hưởng Quyền lợi: Ăn cơm trưa
**tại**nhà máy Bảo hiểm Hưởng lương tháng thứ 13 Số năm kinh nghiệm 1 Năm Yêu cầu bằng cấp... + Nơi làm việc: Hưng Yên + **Mức**lương: thỏa thuận. Hồ sơ bao gồm - Đơn xin việc ( có thể in hoặc viết tay) - Giấy khám sức khỏe - Bằng...
phỏng vấn). Quyền lợi: - Được hưởng
**mức**lương cạnh tranh xứng đáng với năng lực và chế độ đãi ngộ theo chức danh đảm nhiệm; - Được hưởng...̉e tô't, co' khả năng làm việc độc lập. - Co' kinh nghiệm lái **xe**nâng trong ngành chế biến thức ăn chăn nuôi. - Ưu tiên người co' kinh...
Tp Hồ Chí Minh - Hưng Yên
Mô tả Công việc: - Vận hành, đứng máy trực tiếp gia công cắt
**xẻ**sản phẩm theo quy trình sản xuất. - Làm việc theo sự phân công của Quản.... *Hiện nay Công ty đang tuyển nhân sự làm việc **tại**Chi nhánh Hưng Yên và Chi nhánh HCM Địa chỉ làm việc **tại**Hưng Yên: Khu Công nghiệp...
*Làm theo sự chỉ đạo của giám đốc Được ăn sáng
**tại**nhà máy *Giám sát, chăm sóc **xe**Quyền lợi: Được hưởng **mưc**lương phù hợp với công việc...*Đưa đón giám đốc từ khu Garden - Mễ Trì xuống nhà máy ở Hưng Yên (KCN Phố nối A) và ngược lại * **Xe**được gửi **tại**khu đô thị The Garden...
[Hưng Yên](/viec-lam-tai-hung-yen-121830.html)
- 5.000.000-7.000.000₫ một tháng
yêu cầu tiếp nhận chính thức và hưởng theo chế độ lương khoán hiện công ty đang áp dụng đối với lái
**xe**làm việc **tại**chi nhánh Hưng Yên. - Chế... vị trí trong nhiều lĩnh vực, làm việc **tại**Hà Nội Cty IT Developers tuyển gấp 2 vị trí IT, **mức**lương 12tr - 16tr Nhận bản tin việc làm...
[ANZ Education thông báo tuyển nhân viên lái xe](/job/820b7237fbd9010e8373eccb115d5799.html)
ANZ EDUCATION là tập đoàn giáo dục quốc tế đã có mặt
**tại**nhiều quốc gia, nay có nhu cầu tuyển dụng lái **xe**cho giám đốc với các yêu cầu sau.... Ví trí cần tuyển: - 01 lái **xe**cho giám đốc kiêm văn phòng. 3. Yêu cầu công việc: - Số năm kinh nghiệm: 1 năm trở lên; - Có khả năng chịu được...
tư, thu mua vật tư và nhân viên thị trường Nhận bản tin việc làm Email: Việc làm liên quan Vận
**tải**- Lái **xe**1,264,108 ứng viên 349...Cần tuyển Lái **xe**bằng D, E Địa điểm làm việc : Như Quỳnh, Văn Lâm, Hưng Yên. Công việc: Lái **xe**chở cán bộ nhân viên chi tiết sẽ được trao...
[Hưng Yên](/viec-lam-tai-hung-yen-121830.html)
- 3.000.000-5.000.000₫ một tháng
,
**mức**lương hấp dẫn Tuyển Giám sát bán hàng, Kế toán, kinh doanh... **tại**HCM Công ty **Tài**Chính Khải Thái tuyển NVKD **tài**chính lương 5 triệu... **tại**Hà Nội Nhận bản tin việc làm Email: Việc làm liên quan Vận **tải**- Lái **xe**1,233,590 ứng viên 337,254 việc làm 183,467 nhà...
ty VJEC cần tuyển 2 Phiên Dịch,
**mức**lương 7,000,000 đến 12,000,000 VND Công ty TNHH vận **tải**hỗn hợp Việt Nhật số 1 tuyển Lái **xe**Công ty TNHH... nhanh Nhận bản tin việc làm Email: Việc làm liên quan Vận **tải**- Lái **xe**1,233,629 ứng viên 337,270 việc làm 183,475 nhà tuyển...
Chí Minh Tuyển 5 Nhân Viên Lập Trình Web lương 3-5 triệu + % hoa hồng
**tại**Hồ Chí Minh Công ty VJEC cần tuyển 2 Phiên Dịch, **mức**lương 7,000... bản tin việc làm Email: Việc làm liên quan Vận **tải**- Lái **xe**1,233,598 ứng viên 337,257 việc làm 183,469 nhà tuyển dụng 2,750...
- Lái
**xe** **tải**trở hàng có trọng lượng từ 1.25 tấn trở lên - Làm việc theo sự phân công của trưởng bộ phận Quyền lợi: - Lương thỏa thuận... lái **xe** **tải**- Đã có 02 năm kinh nghiệm lái **xe** **tải**từ 1.25 tấn trở lên\ - Trung thực, nhanh nhẹn, khỏe mạnh Hồ sơ bao gồm: Chấp nhận hồ sơ...
Vietnam Destination tuyển 10 nhân viên kinh doanh
**tại**Hồ Chí Minh Công ty VJEC cần tuyển 2 Phiên Dịch, **mức**lương 7,000,000 đến 12,000,000 VND... Công ty TNHH vận **tải**hỗn hợp Việt Nhật số 1 tuyển Lái **xe**Nhà tuyển dụng tiêu điểm Cơ hội làm việc xuất khẩu lao động **tại**Nhật Bản, Đài Loan...
**tải**- Lái **xe**1,233,523 ứng viên 337,226 việc làm 183,453 nhà tuyển dụng 2,750,090 lượt ứng tuyển trực tuyến Nhà tuyển dụng...- Luôn vận hành **xe**nâng an toàn. - Chịu trách nhiệm vận chuyển và xếp dỡ hàng hóa. - Dự đoán trước các nguy cơ có thể xảy ra để báo cho...
, nhiệt tình trong công việc - Có ít nhất 3 năm kinh nghiệm lái
**xe**con cho các lãnh đạo - Đang cứ trú **tại**Hà Nội (ưu tiên người cứ trú **tại**Quận... Hà Nội Nhận bản tin việc làm Email: Việc làm liên quan Vận **tải**- Lái **xe**1,233,534 ứng viên 337,231 việc làm 183,455 nhà tuyển...
Lái
**xe** **tải**loại 1,25 -2 tấn, Lái **xe**con - Lái **xe** **tải**kiêm giao hàng và nhận hàng. - Công việc trao đổi trực tiếp khi phỏng vấn. Quyền... kế toán thực tế **tại**TP. Hồ Chí Minh, Bình Dương, Đồng Nai. Nhận bản tin việc làm Email: Việc làm liên quan Vận **tải**- Lái **xe**1,233,597 ứng...

Server: Apache

Set-Cookie: queries=s%3Dtai+xe+xe+muc%26l%3DH%C6%B0ng+Y%C3%AAn%26lid%3D121830; path=/; expires=Sun, 23-Aug-2015 03:33:53 GMT

Content-Language: vi


text:
Bếp từ magic one MG36, giảm giá cực sốc, bảo hành 18 tháng
- : 500.000 VNĐ
- : 17-04-2013
- :
- : TP.HCM | Lượt xem: 95
- : nguyễn trà
- : 0977129951
CÔNG TY TNHH MTV THƯƠNG MẠI VÀ DỊCH VỤ TRỰC TUYẾN HOÀNG LONG
ĐC: Số nhà 40 ngách 25 Ngõ 102 Trường Chinh – Q . Đống Đa – Hà Nội.ws:sieuthimuaban.com.vn
ĐT: 0977.129.951 (Miss Trà) - 04.3990.5849 - 04.8585.5259
CHUYÊN PHÂN PHỐI BÁN BUÔN - BÁN LẺ HÀNG GIA DỤNG RẺ NHẤT TOÀN QUỐC
Phụ trách kinh doanh: Miss Trà 0977.129.951
– YM:hoanglongplaza_kinhdoanh1
Bếp từ đa năng Magic One MG 36 + Tặng kèm nồi Inox:
Điểm nổi bật
Gia đình bạn thường xuyên tổ chức tiệc, liên hoan, sinh nhật…hay đơn giản chỉ là một phương án dự phòng cho bếp ga nhà bạn hết ga bất ngờ thì Bếp từ sẽ là sự lựa chọn tốt nhất cho bạn.
Trong những bữa tiệc gia đình , người thân , bạn bè bạn thường nấu món Lẫu. Còn gì tuyệt vời hơn khi các thành viên tụ tập , sum vầy quanh nồi nước lẩu thơm ngon, cùng nhau ôn lại những câu chuyện tuyệt vời. Tuy nhiên trong khi ăn lẩu, nỗi lo bếp ga bị xì nổ vẫn thường xuyên ám ảnh thực khách. Bếp từ Magic one là giải pháp tốt nhất dành cho bạn!
Thiết kế mới và thời trang, cùng công nghệ vi xử lí mới nhất, kết hợp với thiết kế nhân văn giữa các phím chuyển đổi.
- Kiểu dáng nhỏ gọn, đẹp, dễ dàng sử dụng, rất phù hợp với những buổi tiệc gia đình, liên hoan, sinh nhật…
- Tặng kèm nồi thủy tinh tiện dụng.
- Thời gian bảo hành: 18 tháng.
ĐẶC TÍNH SẢN PHẨM
- Chức năng nấu nhanh
- Chức năng hẹn giờ
- Chức năng khoá an toàn
- Chức năng tự điều chỉnh nhiệt độ
- Chức năng tự động tắt
- 6 chức năng nấu: xào, nấu, nấu lẩu, hâm sữa, trưng kho, rán
- Chức năng đun nhanh/bảo ôn điều chỉnh theo ý muốn
- Mặt bếp bằng sứ chất lượng cao ,sang trọng,không ngả mầu
- Chức năng bảo vệ bếp khi điện áp tăng hoặc giảm quá mức quy định
- Màn hình hiển thị đa sắc
- Điều khiển bằng phím bấm điện tử, hiển thị LCD, dễ sử dụng
- Sử dụng an toàn với chức năng tự động tắt, bảo vệ quá nhiệt.
- Kích thước nhỏ gọn tiện cất giữ, bảo quản
- 6 chế độ nấu khác nhau: nấu cơm, canh, đun nước, lẩu, xào, nướng.
- Dùng ăn lẩu và ăn nhanh
- Phạm vi điều chỉnh nhiệt độ rộng với 7 chế độ nấu khác nhau
THÔNG SỐ KỸ THUẬT
- Điện áp: 210 - 250v
- Tần số： 50-60 Hz
- Công suất： 2000W
QUÀ TẶNG HẤP DẪN DÀNH CHO QUÝ KHÁCH
- Khi mua sản phẩm bếp từ đa năng Magic One quý khách sẽ được tặng 01 chiếc nồi lẩu vô cùng thuận lợi cho việc tổ chức các bữa tiệc tại gia đình mình.
- Sản phẩm được bảo hành 18 tháng, có phiếu bảo hành đi kèm sản phẩm.
Thông tin liên hệ để mua hàng với giá rẻ nhất :
Địa chỉ mua hàng
cơ sở 1: 40/25/102 trường chinh - đống đa - hà nội
ĐT: 0977.129.951 (Miss Trà) - 04.3990.5849 - 04.8585.5259
cơ sở 2: 222/6 quang trung, gò vấp, TPHCM
ĐT: 086.279.4472 ĐD: 0977.129.951
Hotline Miss Trà: 0977.129.951
Y/h : hoanglongplaza_kinhdoanh1
Cần tìm đại lý phân phối hàng gia dụng khu vực phía nam, Bình Dương

markdown:
# Bếp từ magic one MG36, giảm giá cực sốc, bảo hành 18 tháng
- : 500.000 VNĐ
- :
**17-04-2013**
- :
- :
**TP.HCM**| Lượt xem: **95**
- :
[nguyễn trà](index.php?view=members&memid=72400)
- :
**0977129951**
CÔNG TY TNHH MTV THƯƠNG MẠI VÀ DỊCH VỤ TRỰC TUYẾN HOÀNG LONG
ĐC: Số nhà 40 ngách 25 Ngõ 102 Trường Chinh – Q . Đống Đa – Hà Nội.ws:sieuthimuaban.com.vn
ĐT: 0977.129.951 (Miss Trà) - 04.3990.5849 - 04.8585.5259
CHUYÊN PHÂN PHỐI BÁN BUÔN - BÁN LẺ HÀNG GIA DỤNG RẺ NHẤT TOÀN QUỐC
Phụ trách kinh doanh: Miss Trà 0977.129.951
– YM:hoanglongplaza_kinhdoanh1
**Bếp từ đa năng Magic One MG 36 + Tặng kèm nồi Inox: **
### Điểm nổi bật
Gia đình bạn thường xuyên tổ chức tiệc, liên hoan, sinh nhật…hay đơn giản chỉ là một phương án dự phòng cho bếp ga nhà bạn hết ga bất ngờ thì Bếp từ sẽ là sự lựa chọn tốt nhất cho bạn.
Trong những bữa tiệc gia đình , người thân , bạn bè bạn thường nấu món Lẫu. Còn gì tuyệt vời hơn khi các thành viên tụ tập , sum vầy quanh nồi nước lẩu thơm ngon, cùng nhau ôn lại những câu chuyện tuyệt vời. Tuy nhiên trong khi ăn lẩu, nỗi lo bếp ga bị xì nổ vẫn thường xuyên ám ảnh thực khách. Bếp từ Magic one là giải pháp tốt nhất dành cho bạn!
Thiết kế mới và thời trang, cùng công nghệ vi xử lí mới nhất, kết hợp với thiết kế nhân văn giữa các phím chuyển đổi.
- Kiểu dáng nhỏ gọn, đẹp, dễ dàng sử dụng, rất phù hợp với những buổi tiệc gia đình, liên hoan, sinh nhật…
- Tặng kèm nồi thủy tinh tiện dụng.
- Thời gian bảo hành: 18 tháng.
**ĐẶC TÍNH SẢN PHẨM**
- Chức năng nấu nhanh
- Chức năng hẹn giờ
- Chức năng khoá an toàn
- Chức năng tự điều chỉnh nhiệt độ
- Chức năng tự động tắt
- 6 chức năng nấu: xào, nấu, nấu lẩu, hâm sữa, trưng kho, rán
- Chức năng đun nhanh/bảo ôn điều chỉnh theo ý muốn
- Mặt bếp bằng sứ chất lượng cao ,sang trọng,không ngả mầu
- Chức năng bảo vệ bếp khi điện áp tăng hoặc giảm quá mức quy định
- Màn hình hiển thị đa sắc
- Điều khiển bằng phím bấm điện tử, hiển thị LCD, dễ sử dụng
- Sử dụng an toàn với chức năng tự động tắt, bảo vệ quá nhiệt.
- Kích thước nhỏ gọn tiện cất giữ, bảo quản
- 6 chế độ nấu khác nhau: nấu cơm, canh, đun nước, lẩu, xào, nướng.
- Dùng ăn lẩu và ăn nhanh
- Phạm vi điều chỉnh nhiệt độ rộng với 7 chế độ nấu khác nhau
**THÔNG SỐ KỸ THUẬT- Đ**iện áp: 210 - 250v **- Tần số： 50-60 Hz- Công suất： 2000W**
QUÀ TẶNG HẤP DẪN DÀNH CHO QUÝ KHÁCH
- Khi mua sản phẩm bếp từ đa năng Magic One quý khách sẽ được tặng 01 chiếc nồi lẩu vô cùng thuận lợi cho việc tổ chức các bữa tiệc tại gia đình mình.
- Sản phẩm được bảo hành 18 tháng, có phiếu bảo hành đi kèm sản phẩm.
Thông tin liên hệ để mua hàng với giá rẻ nhất :
Địa chỉ mua hàng
## cơ sở 1: 40/25/102 trường chinh - đống đa - hà nội
ĐT: 0977.129.951 (Miss Trà) - 04.3990.5849 - 04.8585.5259
cơ sở 2: 222/6 quang trung, gò vấp, TPHCM
ĐT: 086.279.4472 ĐD: 0977.129.951
Hotline Miss Trà: 0977.129.951
Y/h : hoanglongplaza_kinhdoanh1
Cần tìm đại lý phân phối hàng gia dụng khu vực phía nam, Bình Dương

WARC-Truncated: length

Cache-Control: max-age=1, private

Vary: Accept-Encoding

Server: cloudflare-nginx


text:
Thông tin về số điện thoại
0989.888789
(không chín tám chín tám tám tám bảy tám chín)
Đây là sim 10 số của mạng điện thoại Viettel, đây có phải là số điện thoại đẹp, dễ nhớ ?
tamhoa: 0989.888.789
: 0
(không chín tám chín tám tám tám bảy tám chín)
Đây là sim 10 số của mạng điện thoại Viettel, đây có phải là số điện thoại đẹp, dễ nhớ ?
tamhoa: 0989.888.789
: 0

markdown:
## Thông tin về số điện thoại
### 0989.888789
(không chín tám chín tám tám tám bảy tám chín)
Đây là sim 10 số của mạng điện thoại Viettel, đây có phải là số điện thoại đẹp, dễ nhớ ?
tamhoa: 0989.888.789
: 0
(không chín tám chín tám tám tám bảy tám chín)
Đây là sim 10 số của mạng điện thoại Viettel, đây có phải là số điện thoại đẹp, dễ nhớ ?
tamhoa: 0989.888.789
: 0

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0


text:
Một trong các điểm hấp dẫn lớn nhất của JSF là nó là một khung công tác dựa vào thành phần. Điều đó có nghĩa là bạn hoặc những người khác có thể thực hiện các thành phần, các thành phần có thể tái sử dụng. Cơ chế tái sử dụng mạnh mẽ đó, đối với hầu hết các phần, đã biểu hiện không đáng kể trong JSF 1 vì đã rất khó triển khai thực hiện các thành phần.
Tuy nhiên, như bạn đã thấy trong Phần 2, JSF 2 làm cho dễ dàng triển khai thực hiện các thành phần — không cần mã Java và không có cấu hình — với một tính năng mới được gọi là các thành phần phức hợp. Tính năng đó có thể là phần quan trọng nhất của JSF 2, vì cuối cùng nó thực hiện được tiềm năng của các thành phần JSF.
Trong bài thứ ba và là bài cuối cùng về JSF 2 này, tôi sẽ cho bạn thấy làm thế nào để cải thiện tính năng của thành phần phức hợp bằng cách sử dụng Ajax mới và các khả năng xử lý sự kiện cũng được đưa vào trong JSF 2, với các lời khuyên sau đây để khai thác tốt nhất JSF 2:
- Lời khuyên 1: Hãy thành phần hóa
- Lời khuyên 2: Hãy Ajax hóa
- Lời khuyên 3: Hãy cho xem tiến độ
Trong lời khuyên đầu tiên, tôi sẽ xem xét lại ngắn gọn hai thành phần mà tôi thảo luận chi tiết trong Phần 2. Trong các lời khuyên sau đó, tôi sẽ cho bạn thấy làm thế nào để chuyển đổi các thành phần đó bằng cách sử dụng Ajax và xử lý-sự kiện.
Lời khuyên 1: Hãy thành phần hóa
Ứng dụng các địa điểm, mà tôi đã giới thiệu trong Phần 1, có chứa một số thành phần phức hợp. Một là thành phần
map (bản đồ), hiển thị một bản đồ của một
địa chỉ, bổ sung thêm một trình đơn thả xuống gồm các mức phóng to, như
trong Hình 1:
Hình 1. Thành phần
map của ứng dụng các địa điểm
Liệt kê mã rút gọn của thành phần
map được hiển
thị trong Liệt kê 1:
Liệt kê 1. Thành phần
map
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   <composite:interface> <composite:attribute name="title"/> </composite:interface>  <composite:implementation">
 ... <h:panelGrid...> <h:panelGrid...> <h:selectOneMenu onchange="submit()" value="#{cc.parent.attrs.location.zoomIndex}" valueChangeListener="#{cc.parent.attrs.location.zoomChanged}" style="font-size:13px;font-family:Palatino"> <f:selectItems value="#{places.zoomLevelItems}"/> </h:selectOneMenu> </h:panelGrid> </h:panelGrid> <h:graphicImage url="#{cc.parent.attrs.location.mapUrl}" style="border: thin solid gray"/> ...
 ... </composite:implementation>
Một trong những điều tuyệt vời của các thành phần là bạn có thể thay thế
chúng bằng các lựa chọn thay thế khác, mạnh hơn mà không làm ảnh hưởng bất
kỳ các chức năng xung quanh nào. Ví dụ, trong Hình 2, tôi đã thay thế
thành phần
image (hình ảnh) trong Liệt kê 1 bằng thành phần Google Maps, với sự cho
phép của GMaps4JSF (xem Tài nguyên):
Hình 2. Hình ảnh bản đồ của GMaps4JSF
Mã được cập nhật (và được cắt ngắn bớt) cho thành phần
map được hiển thị trong Liệt kê 2:
Liệt kê 2. Thay thế hình ảnh bản đồ bằng một thành phần GMaps4JSF
<h:selectOneMenu onchange="submit()"value="#{cc.parent.attrs.location.zoomIndex}" valueChangeListener="#{cc.parent.attrs.location.zoomChanged}" style="font-size:13px;font-family:Palatino"> <f:selectItems value="#{places.zoomLevelItems}"/> </h:selectOneMenu> ... <m:map id="map" width="420px" height="400px" address="#{cc.parent.attrs.location.streetAddress}, ..." zoom="#{cc.parent.attrs.location.zoomIndex}" renderOnWindowLoad="false"> <m:mapControl id="smallMapCtrl" name="GLargeMapControl" position="G_ANCHOR_TOP_RIGHT"/> <m:mapControl id="smallMapTypeCtrl" name="GMapTypeControl"/> <m:marker id="placeMapMarker"/> </m:map>
Để sử dụng một thành phần GMaps4JSF, tôi đã thay thế thẻ
<h:graphicImage> bằng một thẻ
<m:map> từ bộ thành phần GMaps4JSF. Cũng
thật đơn giản để móc nối thành phần GMaps4JSF vào trình đơn thả xuống các
mức phóng to, chỉ cần chỉ rõ thuộc tính bean hậu thuẫn chính xác cho thuộc
tính
zoom (phóng to) của thẻ
<m:map>.
Khi nói về các mức phóng to, chú ý rằng khi một người dùng thay đổi mức
phóng to, tôi bắt buộc gửi đi một biểu mẫu có thuộc tính
onchange của thẻ
<h:selectOneMenu>, như được hiển thị trong dòng đầu tiên
được in đậm một phần trong Liệt kê 1. Việc gửi
biểu mẫu đó kích hoạt vòng đời JSF, mà cuối cùng đẩy giá trị mới cho mức
phóng to vào thuộc tính
zoomIndex của một bean
location (vị trí) được lưu trong thành phần
phức hợp cha mẹ. Thuộc tính bean đó được liên kết với thành phần đầu vào,
trong dòng đầu tiên của Liệt kê 2.
Vì tôi đã không xác định bất kỳ sự chuyển hướng nào để gửi đi biểu mẫu kết hợp với việc thay đổi mức phóng to, nên JSF làm mới chính trang này sau khi xử lý các yêu cầu, vẽ lại hình ảnh bản đồ để phản ánh mức phóng to mới. Tuy nhiên, việc làm mới trang đó cũng vẽ lại toàn bộ trang mặc dù sự thay đổi duy nhất chỉ ở trong hình ảnh bản đồ. Trong Lời khuyên 2: Hãy Ajax hóa, tôi sẽ chỉ cho bạn cách sử dụng Ajax để chỉ vẽ lại hình ảnh để đáp ứng một sự thay đổi mức phóng to.
Thành phần
login
Một thành phần khác được sử dụng trong ứng dụng các địa điểm là thành phần
login (đăng nhập). Hình 3 cho thấy thành
phần login đang hoạt động:
Hình 3. Thành phần
login
Liệt kê 3 cho thấy tài liệu đánh dấu siêu văn bản
tạo ra thành phần
login hiển thị trong Hình 3:
Liệt kê 3.
login (đăng nhập) tối thiểu: Chỉ các thuộc tính cần thiết
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:util="http://java.sun.com/jsf/composite/components/util"> <util:login loginAction="#{user.login}" managedBean="#{user}"/> </ui:composition>
Thành phần
login chỉ có hai thuộc tính cần thiết
phải có:
loginAction: Một phương thức hành động đăng nhập.
managedBean: Một bean được quản lý có các thuộc tính tên và mật khẩu.
Bean được quản lý đã xác định trong Liệt kê 3 được hiển thị trong Liệt kê 4:
Liệt kê 4. User.groovy
package com.clarity import javax.faces.context.FacesContext import javax.faces.bean.ManagedBean import javax.faces.bean.SessionScoped @ManagedBean() @SessionScoped public class User { private final String VALID_NAME = "Hiro" private final String VALID_PASSWORD = "jsf" private String name, password; public String getName() { name } public void setName(String newValue) { name = newValue } public String getPassword() { return password } public void setPassword(String newValue) { password = newValue } public String login() { "/views/places" } public String logout() { name = password = nameError = null "/views/login" } }
Bean được quản lý trong Liệt kê 4 là một bean
Groovy. Việc sử dụng Groovy thay cho ngôn ngữ Java không mang lại gì nhiều
cho tôi trong trường hợp này, ngoài việc giải phóng tôi khỏi công việc cực
nhọc và buồn tẻ của các dấu chấm phẩy và các câu lệnh return. Tuy nhiên,
trong phần Xác nhận hợp lệ (Validation) của Lời
khuyên 2, tôi sẽ cho bạn thấy một lý do thuyết phục hơn để sử dụng Groovy
đối với bean được quản lý
User.
Hầu hết trường hợp, bạn sẽ muốn cấu hình đầy đủ các thành phần đăng nhập với các lời nhắc và văn bản kèm theo nút, như trong Hình 4:
Hình 4. Một thành phần
login được cấu hình đầy đủ
Liệt kê 5 cho thấy tài liệu đánh dấu siêu văn bản tạo ra thành phần
login trong Hình 4:
Liệt kê 5. Cấu hình thành phần
login
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:util="http://java.sun.com/jsf/composite/components/util"> <util:login loginPrompt="#{msgs.loginPrompt}" namePrompt="#{msgs.namePrompt}" passwordPrompt="#{msgs.passwordPrompt}" loginButtonText="#{msgs.loginButtonText}" loginAction="#{user.login}" managedBean="#{user}"/> </ui:composition>
Trong Liệt kê 5, tôi nhận được các chuỗi ký tự với lời nhắc và văn bản kèm theo nút đăng nhập từ một gói tài nguyên.
Liệt kê 6 định nghĩa thành phần
login:
Liệt kê 6. Định nghĩa thành phần
login
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    <composite:interface>  <composite:attribute name="loginPrompt"/> <composite:attribute name="namePrompt"/> <composite:attribute name="passwordPrompt"/>  <composite:attribute name="loginButtonText"/>  <composite:attribute name="loginAction" method-signature="java.lang.String login()" required="true"/>  <composite:actionSource name="loginButton" targets="form:loginButton"/>  <composite:attribute name="managedBean" required="true"/> </composite:interface>  <composite:implementation>
 #{cc.attrs.loginPrompt}
  <h:form id="form"> <h:panelGrid columns="2">  #{cc.attrs.namePrompt} <h:inputText id="name" value="#{cc.attrs.managedBean.name}"/> #{cc.attrs.passwordPrompt} <h:inputSecret id="password" size="8" value="#{cc.attrs.managedBean.password}"/> </h:panelGrid>
  <h:commandButton id="loginButton" value="#{cc.attrs.loginButtonText}" action="#{cc.attrs.loginAction}"/>
 </h:form> </composite:implementation>
Cũng giống như thành phần
map (bản đồ), thành
phần
login có thể sử dụng nâng cấp bằng Ajax.
Trong mục Xác nhận hợp lệ của lời khuyên tiếp
theo, tôi sẽ cho bạn thấy làm thế nào để thêm việc xác nhận hợp lệ bằng
Ajax cho thành phần đăng nhập login.
Lời khuyên 2: Hãy Ajax hóa
Ajax điển hình thường đòi hỏi hai bước mà thông thường các yêu cầu HTTP không Ajax đã không làm như thế: xử lý từng phần các biểu mẫu trên máy chủ và biểu hiện từng phần kết quả của Mô hình đối tượng tài liệu (Document Object Model-DOM) trên máy khách.
Xử lý và biểu hiện từng phần
JSF 2 hỗ trợ xử lý và biểu hiện từng phần bằng cách phân tách vòng đời của JSF thành hai phần lô-gic riêng biệt: thi hành và biểu hiện. Hình 5 nêu bật phần thi hành:
Hình 5. Phần thi hành của vòng đời JSF
Hình 6 nêu bật phần biểu hiện của vòng đời của JSF:
Hình 6. Phần biểu hiện của vòng đời JSF
Ý tưởng đằng sau các phần thi hành và biểu hiện trong vòng đời là đơn giản:
bạn có thể quy định các thành phần mà JSF thi hành (xử lý) chúng trên máy
chủ và các thành phần mà JSF biểu hiện khi một cuộc gọi Ajax trả về. Bạn
làm điều đó với thẻ
<f:ajax>, là thẻ mới
cho JSF 2, như thể hiện trong Liệt kê 7:
Liệt kê 7. Trình đơn phóng to của Ajax
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <h:selectOneMenu id="menu" value="#{cc.parent.attrs.location.zoomIndex}" style="font-size:13px;font-family:Palatino"> <f:ajax event="change" execute="@this" render="map"/> <f:selectItems value="#{places.zoomLevelItems}"/> </h:selectOneMenu> <m:map id="map"...>
Liệt kê 7 là sửa đổi của trình đơn được chỉ ra
trong dòng đầu tiên của Liệt kê 2: Tôi đã gỡ bỏ
thuộc tính
onchange khỏi Liệt kê 2 và đã thêm một thẻ
<f:ajax>. Thẻ
<f:ajax>
đó xác định:
- Sự kiện kích hoạt cuộc gọi Ajax.
- Một thành phần để thi hành trên máy chủ.
- Một thành phần để biểu hiện trên máy khách.
Khi người sử dụng chọn một mục từ trình đơn phóng to, JSF bắt đầu một cuộc
gọi Ajax đến máy chủ. Sau đó, JSF chuyển trình đơn đến phần thi hành của
vòng đời (
@this có nghĩa là thành phần bao
quanh của
<f:ajax>) và cập nhật
zoomIndex của trình đơn trong giai đoạn Cập nhật
các giá trị mô hình của vòng đời. Khi cuộc gọi Ajax trả về, JSF biểu hiện
thành phần map (bản đồ), sử dụng chỉ số phóng to (vừa mới được thiết lập)
để vẽ lại bản đồ và bây giờ bạn có một trình đơn phóng to được xử lý bằng
Ajax, chỉ thêm một dòng XHTML.
Nhưng còn có thể làm mọi việc đơn giản hơn nữa, bởi vì JSF cung cấp các giá
trị mặc định cho các thuộc tính
event (sự kiện)
và
execute (thi hành).
Mỗi thành phần JSF có một sự kiện mặc định để kích hoạt các cuộc gọi Ajax
nếu bạn nhúng một thẻ
<f:ajax> bên trong
thẻ thành phần. Đối với các trình đơn, sự kiện đó là sự kiện
change (thay đổi). Điều đó có nghĩa là tôi có thể
bỏ thuộc tính
event của
<f:ajax> trong Liệt kê 7. Giá
trị mặc định cho thuộc tính
execute của
<f:ajax> là
@this, nghĩa là thành phần bao quanh của thẻ
<f:ajax>. Trong ví dụ này, thành phần đó là
trình đơn, vì vậy tôi cũng có thể bỏ thuộc tính
execute.
Bằng cách sử dụng các giá trị thuộc tính mặc định cho
<f:ajax>, tôi có thể rút gọn Liệt kê
7 thành Liệt kê 8:
Liệt kê 8. Phiên bản đơn giản hơn của một trình đơn Ajax phóng to
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <h:selectOneMenu id="menu" value="#{cc.parent.attrs.location.zoomIndex}" style="font-size:13px;font-family:Palatino"> <f:ajax render="map"/> <f:selectItems value="#{places.zoomLevelItems}"/> </h:selectOneMenu> <m:map id="map"...>
Điều này cho thấy việc thêm Ajax cho các thành phần của bạn với JSF 2 dễ dàng như thế nào. Tất nhiên, ví dụ trên là khá đơn giản: Tôi đơn giản chỉ vẽ lại bản đồ thay vì toàn bộ cả trang khi người sử dụng chọn một mức phóng to. Một số phép toán, như là việc xác nhận hợp lệ một trường riêng biệt trong một biểu mẫu, sẽ phức tạp hơn, do đó, tiếp theo tôi sẽ giải quyết các trường hợp sử dụng đó.
Xác nhận hợp lệ
Xác nhận hợp lệ các trường và cung cấp thông tin phản hồi ngay lập tức khi người sử dụng nhập xong dữ liệu và ra khỏi một trường là một ý tưởng tốt. Ví dụ, trong Hình 7, tôi đang sử dụng Ajax để xác nhận hợp lệ trường tên:
Hình 7. Xác nhận hợp lệ của Ajax
Mã đánh dấu siêu văn bản tạo ra trường tên được hiển thị trong Liệt kê 9:
Liệt kê 9. Trường name
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <h:panelGrid columns="2"> #{cc.attrs.namePrompt} <h:panelGroup> <h:inputText id="name" value="#{cc.attrs.managedBean.name}" valueChangeListener="#{cc.attrs.managedBean.validateName}"> <f:ajax event="blur" render="nameError"/> </h:inputText> <h:outputText id="nameError" value="#{cc.attrs.managedBean.nameError}" style="color: red;font-style: italic;"/> </h:panelGroup> ... </h:panelGrid>
Một lần nữa, tôi sử dụng
<f:ajax>, chỉ có
điều là lần này sự kiện mặc định cho đầu vào —
change—sẽ không áp dụng được, vì vậy tôi xác định
blur (làm mờ đi) là sự kiện kích hoạt cuộc gọi
Ajax. Khi người sử dụng ra khỏi trường tên, JSF bắt đầu một cuộc gọi Ajax
đến máy chủ và chạy thành phần đầu vào
name
thuộc giai đoạn thi hành của vòng đời. Điều này có nghĩa rằng JSF sẽ gọi
trình nghe thay đổi giá trị đầu vào của
name
như đã chỉ rõ trong Liệt kê 9 trong giai đoạn xác
nhận hợp lệ của vòng đời. Liệt kê 10 hiển thị trình nghe thay đổi giá trị
ấy:
Liệt kê 10. Phương thức
validateName()
package com.clarity import javax.faces.context.FacesContext import javax.faces.bean.ManagedBean import javax.faces.bean.SessionScoped import javax.faces.event.ValueChangeEvent import javax.faces.component.UIInput @ManagedBean() @SessionScoped public class User { private String name, password, nameError; ... public void validateName(ValueChangeEvent e) { UIInput nameInput = e.getComponent() String name = nameInput.getValue() if (name.contains("_")) nameError = "Name cannot contain underscores" else if (name.equals("")) nameError = "Name cannot be blank" else nameError = "" } ... }
Trình nghe thay đổi-giá trị — Phương thức
validateName() của bean được quản lý
user (người sử dụng) — xác nhận
hợp lệ trường tên và cập nhật thuộc tính
nameError của bean được quản lý
user.
Sau khi cuộc gọi Ajax trả về, nhờ có thuộc tính
render của thẻ
<f:ajax> trong
Liệt kê 9, JSF biểu hiện kết quả đầu ra
nameError. Đầu ra đó hiển thị thuộc tính
nameError của bean được quản lý
user.
Xác nhận hợp lệ nhiều trường
Trong tiểu mục trên, tôi đã cho bạn thấy làm thế nào để thực hiện xác nhận hợp lệ bằng Ajax cho một trường duy nhất. Tuy nhiên, đôi khi bạn cần phải xác nhận hợp lệ nhiều trường cùng một lúc. Ví dụ, Hình 8 cho thấy ứng dụng các địa điểm xác nhận hợp lệ các trường tên và mật khẩu cùng nhau:
Hình 8. Xác nhận hợp lệ nhiều trường
Tôi xác nhận hợp lệ trường tên và mật khẩu cùng nhau khi người sử dụng gửi đi biểu mẫu, vì vậy tôi không cần Ajax cho ví dụ này. Thay vào đó, tôi sẽ sử dụng hệ thống sự kiện mới của JSF 2, như thể hiện trong Liệt kê 11:
Liệt kê 11. Sử dụng
<f:event>
<h:form id="form" prependId="false"> <f:event type="postValidate" listener="#{cc.attrs.managedBean.validate}"/> ... </h:form>
 <h:messages layout="table"/>

Trong Liệt kê 11, tôi sử dụng
<f:event>, — giống như
<f:ajax>
— là điểm mới của JSF 2. Thẻ
<f:event> cũng tương tự như
<f:ajax> ở khía cạnh khác, đó là: sử dụng rất đơn giản.
Bạn đặt một thẻ
<f:event> bên trong một
thẻ thành phần và khi sự kiện đã xác định (bằng thuộc tính
type) xảy ra đối với thành phần đó, JSF gọi một
phương thức, chỉ rõ bởi thuộc tính
listener
(trình nghe). Vì vậy, theo tiếng Anh, thẻ
<f:event> trong Liệt kê 11 có
nghĩa là: Sau khi xác nhận hợp lệ biểu mẫu, gọi phương thức
validate() của bean được quản lý mà người sử dụng
đã chuyển cho thành phần phức hợp này. Đó là phương thức được chỉ ra trong
Liệt kê 12:
Liệt kê 12. Phương thức
validate()
package com.clarity import javax.faces.context.FacesContext import javax.faces.bean.ManagedBean import javax.faces.bean.SessionScoped import javax.faces.event.ValueChangeEvent import javax.faces.component.UIInput @ManagedBean() @SessionScoped public class User { private final String VALID_NAME = "Hiro"; private final String VALID_PASSWORD = "jsf"; ... public void validate(ComponentSystemEvent e) { UIForm form = e.getComponent() UIInput nameInput = form.findComponent("name") UIInput pwdInput = form.findComponent("password") if ( ! (nameInput.getValue().equals(VALID_NAME) && pwdInput.getValue().equals(VALID_PASSWORD))) { FacesContext fc = FacesContext.getCurrentInstance() fc.addMessage(form.getClientId(), new FacesMessage("Name and password are invalid. Please try again.")) fc.renderResponse() } } ... }
JSF chuyển cho phương thức
validate() trong Liệt kê 12 một sự kiện hệ thống thành phần, từ
đó phương thức này nhận được một tham chiếu đến thành phần mà sự kiện này
áp vào nó — đó là biểu mẫu đăng nhập. Từ biểu mẫu đó, tôi
sử dụng phương thức
findComponent() để nhận
được các thành phần tên và mật khẩu. Nếu các giá trị của các thành phần đó
tương ứng không phải là Hiro và JSF, tôi lưu thông báo trên bối cảnh faces
(các mặt ngoài) và ra lệnh cho JSF bắt đầu ngay giai đoạn đáp ứng biểu
hiện (Render Response) của vòng đời. Theo cách này, tôi tránh được giai
đoạn Cập nhật các giá trị mô hình (Update Model Values), trong đó sẽ đẩy
tên và mật khẩu không đúng đến mô hình (xem Hình
5).
Bạn có thể đã nhận thấy rằng các phương thức xác nhận hợp lệ trong Liệt kê 10 và Liệt kê
12 được viết bằng Groovy. Không giống như Liệt
kê 4, ở đó lợi thế duy nhất để sử dụng Groovy là không có các dấu
chấm phẩy và các câu lệnh return, mã Groovy trong Liệt kê 10 và Liệt kê 12 giải phóng tôi
khỏi phải ép kiểu (casting). Ví dụ, trong Liệt kê
10,
ComponentSystemEvent.getComponent()
và
UIComponent.findComponent() cả hai đều trả
về kiểu
UIComponent. Với ngôn ngữ Java, tôi sẽ
phải ép kiểu các giá trị trả về của các phương thức đó. Groovy thực hiện
ép kiểu cho tôi.
Lời khuyên 3: Hãy cho xem tiến độ
Trong phần Hãy Ajax hóa, tôi đã cho bạn thấy làm thế
nào để xử lý bằng Ajax trình đơn phóng to cho thành phần
map, sao cho ứng dụng các địa điểm chỉ vẽ lại
phần bản đồ của trang khi người dùng thay đổi mức phóng to. Một trường hợp
phổ biến sử dụng Ajax là cung cấp một phản hồi đến người dùng, khi một sự
kiện Ajax đang tiến triển, như Hình 9:
Hình 9. Một thanh tiến độ
Trong Hình 9, tôi đã thay thế trình đơn phóng to bằng một hoạt hình GIF, hiển thị trong khi cuộc gọi Ajax đang tiến triển. Khi cuộc gọi Ajax hoàn thành, tôi thay thế bộ chỉ thị tiến độ bằng trình đơn phóng to. Liệt kê 13 cho thấy nó được thực hiện như thế nào:
Liệt kê 13. Theo dõi một yêu cầu của Ajax
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <h:selectOneMenu id="menu" value="#{cc.parent.attrs.location.zoomIndex}" style="font-size:13px;font-family:Palatino"> <f:ajax render="map" onevent="zoomChanging"/> <f:selectItems value="#{places.zoomLevelItems}"/> ... </h:selectOneMenu> ... <h:graphicImage id="progressbar" style="display: none" library="images" name="orange-barber-pole.gif"/>
Trong Liệt kê 13, tôi thêm một hình ảnh thanh tiến
độ, ban đầu không được hiển thị và xác định thuộc tính
onevent cho
<f:ajax>. Thuộc
tính này tham chiếu một hàm JavaScript, hiển thị trong Liệt kê 14, mà JSF sẽ gọi hàm đó khi cuộc gọi
Ajax bắt đầu trong Liệt kê 13 đang tiến
triển:
Liệt kê 14. JavaScript để đáp ứng một yêu cầu Ajax
function zoomChanging(data) { var menuId = data.source.id; var progressbarId = menuId.substring(0, menuId.length - "menu".length) + "progressbar"; if (data.name == "begin") { Element.hide(menuId); Element.show(progressbarId); } else if (data.name == "success") { Element.show(menuId); Element.hide(progressbarId); } }
Trong Liệt kê 14, JSF chuyển cho hàm này một đối
tượng có chứa một số thông tin, như là mã nhận dạng máy khách của thành
phần đã bắt đầu thực hiện sự kiện (trong trường hợp này, đó là trình đơn
mức phóng to) và trạng thái hiện tại của yêu cầu Ajax, được biểu diễn bởi
một thuộc tính được đặt tên không thích đáng lắm là
name.
Hàm
zoomChanging() hiển thị trong Liệt kê 14 tính toán mã nhận dạng máy khách của
hình ảnh thanh tiến trình và sau đó sử dụng đối tượng
Element (phần tử) nguyên mẫu để ẩn giấu và hiển thị các phần
tử HTML thích hợp trong thời gian cuộc gọi Ajax.
Kết luận
Trong những năm qua, JSF 1 đã có tiếng như là một khung công tác rất khó sử dụng. Trong nhiều khía cạnh, danh tiếng đó là đúng. JSF 1 đã được phát triển trong một tháp ngà mà không nhận thức ra được rằng việc sử dụng trong thế giới thực mới có đủ khả năng. Kết quả là, JSF đã tạo ra cho nó nhiều khó khăn để triển khai các ứng dụng và các thành phần hơn nó vốn có.
JSF 2, mặt khác, đã được sinh ra từ thử thách khắc nghiệt của thế giới thực, bởi công chúng, những người đã triển khai thực hiện các dự án mã nguồn mở bên trên JSF 1. Các nhận thức sau này trong thế giới thực đã dẫn đến một khung công tác hiểu biết nhiều hơn, làm cho dễ dàng triển khai thực hiện các ứng dụng Ajax hóa mạnh mẽ.
Trong suốt loạt bài này, tôi đã cho bạn thấy một số đặc tính JSF 2 nổi bật nhất, chẳng hạn như các chú giải và quy ước để thay thế việc cấu hình, việc dẫn hướng được đơn giản hóa, hỗ trợ cho sử dụng tài nguyên, các thành phần phức hợp, Ajax gắn sẵn và mô hình sự kiện mở rộng. Nhưng JSF 2 có nhiều đặc tính hơn nữa mà tôi đã không trình bày được trong loạt bài này, chẳng hạn như các phạm vi của View và Page (Khung nhìn và Trang), hỗ trợ cho các trang có khả năng đánh dấu và Giai đoạn dự án (Project Stage). Tất cả những đặc tính đó và nhiều hơn nữa, làm cho JSF 2 được cải tiến rất nhiều so với phiên bản ban đầu của nó.
Tải về
Tài nguyên
Học tập
- Trang chủ JSF: Tìm thêm tài nguyên về phát triển với JSF.
- GMaps4JSF: Thư viện này giúp những người sử dụng JSF xây dựng ứng dụng trộn, sử dụng các bản đồ của Google (Google Maps).
- Blog của Roger Kitain: Roger Kitain và Ed Burns cùng đứng đầu nhóm đặc tả cho JSF 2.0.
- Blog của Jim Driscoll: Bạn sẽ tìm thấy nhiều mục có liên quan đến JSF 2.
- Blog của Ryan Lubke: Ryan Lubke làm việc về triển khai thực hiện tham chiếu JSF 2.
- Vùng công nghệ Java của developerWorks: Tìm hàng trăm bài viết về mọi khía cạnh về lập trình Java.
Lấy sản phẩm và công nghệ
Thảo luận
- "Truy cập công khai đến các cuộc thảo luận JSF 2.0 JSR-314-EG hiện đã có sẵn" (Ed Burns's Blog, java.net, 03.2009): Tìm hiểu cách đăng ký vào danh sách gửi thư của nhóm chuyên gia JSF2.
- Dành tâm trí cho cộng đồng My developerWorks.
Bình luận
-
Vùng dữ liệu trên developerWorks
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
-
Vùng mã nguồn mở trên developerWorks
Xem các bài viết về HTML, CSS, JavaScript,...
-
Điện toán đám mây
Tìm hiểu về điện toán đám mây

markdown:
Một trong các điểm hấp dẫn lớn nhất của JSF là nó là một khung công tác dựa vào thành phần. Điều đó có nghĩa là bạn hoặc những người khác có thể thực hiện các thành phần, các thành phần có thể tái sử dụng. Cơ chế tái sử dụng mạnh mẽ đó, đối với hầu hết các phần, đã biểu hiện không đáng kể trong JSF 1 vì đã rất khó triển khai thực hiện các thành phần.
Tuy nhiên, như bạn đã thấy trong
[Phần 2](http://www.ibm.com/developerworks/vn/library/j-jsf2fu2/index.html), JSF 2 làm cho dễ dàng triển khai thực hiện các thành phần
— không cần mã Java và không có cấu hình
— với một tính năng mới được gọi là *các thành phần
phức hợp*. Tính năng đó có thể là phần quan trọng nhất của JSF 2,
vì cuối cùng nó thực hiện được tiềm năng của các thành phần JSF.
Trong bài thứ ba và là bài cuối cùng về JSF 2 này, tôi sẽ cho bạn thấy làm thế nào để cải thiện tính năng của thành phần phức hợp bằng cách sử dụng Ajax mới và các khả năng xử lý sự kiện cũng được đưa vào trong JSF 2, với các lời khuyên sau đây để khai thác tốt nhất JSF 2:
- Lời khuyên 1: Hãy thành phần hóa
- Lời khuyên 2: Hãy Ajax hóa
- Lời khuyên 3: Hãy cho xem tiến độ
Trong lời khuyên đầu tiên, tôi sẽ xem xét lại ngắn gọn hai thành phần mà
tôi thảo luận chi tiết trong
[Phần 2](http://www.ibm.com/developerworks/vn/library/j-jsf2fu2/index.html). Trong các lời khuyên sau đó, tôi sẽ cho bạn thấy làm thế
nào để chuyển đổi các thành phần đó bằng cách sử dụng Ajax và xử lý-sự
kiện.
## Lời khuyên 1: Hãy thành phần hóa
Ứng dụng các địa điểm, mà tôi đã giới thiệu trong
[Phần 1](http://www.ibm.com/developerworks/vn/library/j-jsf2fu1/index.html), có chứa một số thành phần phức hợp. Một là thành phần
map (bản đồ), hiển thị một bản đồ của một
địa chỉ, bổ sung thêm một trình đơn thả xuống gồm các mức phóng to, như
trong Hình 1:
##### Hình 1. Thành phần
map của ứng dụng các địa điểm
![ Thành phần map](map-component.jpg)
Liệt kê mã rút gọn của thành phần
map được hiển
thị trong Liệt kê 1:
##### Liệt kê 1. Thành phần
map
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   <composite:interface> <composite:attribute name="title"/> </composite:interface>  <composite:implementation">
 ... <h:panelGrid...> <h:panelGrid...> <
h:selectOneMenuonchange="submit()" value="#{cc.parent.attrs.location. zoomIndex}" valueChangeListener="#{cc.parent.attrs.location.zoomChanged}" style="font-size:13px;font-family:Palatino"> <f:selectItems value="#{places.zoomLevelItems}"/> </h:selectOneMenu> </h:panelGrid> </h:panelGrid> < h:graphicImageurl="#{cc.parent.attrs.location.mapUrl}" style="border: thin solid gray"/> ...
 ... </composite:implementation>
Một trong những điều tuyệt vời của các thành phần là bạn có thể thay thế
chúng bằng các lựa chọn thay thế khác, mạnh hơn mà không làm ảnh hưởng bất
kỳ các chức năng xung quanh nào. Ví dụ, trong Hình 2, tôi đã thay thế
thành phần
image (hình ảnh) trong
[Liệt kê 1](#listing1) bằng thành phần Google Maps, với sự cho
phép của GMaps4JSF (xem [Tài nguyên](#resources)):
##### Hình 2. Hình ảnh bản đồ của GMaps4JSF
![ Thành phần map của GMaps4JSF](places-gmaps.jpg)
Mã được cập nhật (và được cắt ngắn bớt) cho thành phần
map được hiển thị trong Liệt kê 2:
##### Liệt kê 2. Thay thế hình ảnh bản đồ bằng một thành phần GMaps4JSF
<h:selectOneMenu
onchange="submit()" value="#{cc.parent.attrs.location. zoomIndex}" valueChangeListener="#{cc.parent.attrs.location.zoomChanged}" style="font-size:13px;font-family:Palatino"> <f:selectItems value="#{places.zoomLevelItems}"/> </h:selectOneMenu> ... < m:mapid="map" width="420px" height="400px" address="#{cc.parent.attrs.location.streetAddress}, ..." zoom="#{cc.parent.attrs.location. zoomIndex}" renderOnWindowLoad="false"> <m:mapControl id="smallMapCtrl" name="GLargeMapControl" position="G_ANCHOR_TOP_RIGHT"/> <m:mapControl id="smallMapTypeCtrl" name="GMapTypeControl"/> <m:marker id="placeMapMarker"/> </m:map>
Để sử dụng một thành phần GMaps4JSF, tôi đã thay thế thẻ
<h:graphicImage> bằng một thẻ
<m:map> từ bộ thành phần GMaps4JSF. Cũng
thật đơn giản để móc nối thành phần GMaps4JSF vào trình đơn thả xuống các
mức phóng to, chỉ cần chỉ rõ thuộc tính bean hậu thuẫn chính xác cho thuộc
tính
zoom (phóng to) của thẻ
<m:map>.
Khi nói về các mức phóng to, chú ý rằng khi một người dùng thay đổi mức
phóng to, tôi bắt buộc gửi đi một biểu mẫu có thuộc tính
onchange của thẻ
<h:selectOneMenu>, như được hiển thị trong dòng đầu tiên
được in đậm một phần trong
[Liệt kê 1](#listing1). Việc gửi
biểu mẫu đó kích hoạt vòng đời JSF, mà cuối cùng đẩy giá trị mới cho mức
phóng to vào thuộc tính
zoomIndex của một bean
location (vị trí) được lưu trong thành phần
phức hợp cha mẹ. Thuộc tính bean đó được liên kết với thành phần đầu vào,
trong dòng đầu tiên của
[Liệt kê 2](#listing2).
Vì tôi đã không xác định bất kỳ sự chuyển hướng nào để gửi đi biểu mẫu kết
hợp với việc thay đổi mức phóng to, nên JSF làm mới chính trang này sau
khi xử lý các yêu cầu, vẽ lại hình ảnh bản đồ để phản ánh mức phóng to
mới. Tuy nhiên, việc làm mới trang đó cũng vẽ lại toàn bộ trang mặc dù sự
thay đổi duy nhất chỉ ở trong hình ảnh bản đồ. Trong
[Lời
khuyên 2: Hãy Ajax hóa](#tip2), tôi sẽ chỉ cho bạn cách sử dụng Ajax để
chỉ vẽ lại hình ảnh để đáp ứng một sự thay đổi mức phóng to.
### Thành phần
login
Một thành phần khác được sử dụng trong ứng dụng các địa điểm là thành phần
login (đăng nhập). Hình 3 cho thấy thành
phần login đang hoạt động:
##### Hình 3. Thành phần
login
![ Thành phần login](login-blank.jpg)
[Liệt kê 3](#listing3) cho thấy tài liệu đánh dấu siêu văn bản
tạo ra thành phần
login hiển thị trong
[Hình 3](#fig3):
##### Liệt kê 3.
login (đăng nhập) tối thiểu: Chỉ các thuộc tính cần thiết
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:util="http://java.sun.com/jsf/composite/components/util"> <util:login
loginAction="#{user.login}" managedBean="#{user}"/> </ui:composition>
Thành phần
login chỉ có hai thuộc tính cần thiết
phải có:
loginAction: Một phương thức hành động đăng nhập.
managedBean: Một bean được quản lý có các thuộc tính tên và mật khẩu.
Bean được quản lý đã xác định trong
[Liệt kê 3](#listing3) được
hiển thị trong Liệt kê 4:
##### Liệt kê 4. User.groovy
package com.clarity import javax.faces.context.FacesContext import javax.faces.bean.ManagedBean import javax.faces.bean.SessionScoped @ManagedBean() @SessionScoped public class User { private final String VALID_NAME = "Hiro" private final String VALID_PASSWORD = "jsf" private String
name, password; public String getName() { name } public void setName(String newValue) { name = newValue } public String getPassword() { return password } public void setPassword(String newValue) { password = newValue } public String login(){ "/views/places" } public String logout() { name = password = nameError = null "/views/login" } }
Bean được quản lý trong
[Liệt kê 4](#listing4) là một bean
Groovy. Việc sử dụng Groovy thay cho ngôn ngữ Java không mang lại gì nhiều
cho tôi trong trường hợp này, ngoài việc giải phóng tôi khỏi công việc cực
nhọc và buồn tẻ của các dấu chấm phẩy và các câu lệnh return. Tuy nhiên,
trong phần [Xác nhận hợp lệ](#validation) (Validation) của Lời
khuyên 2, tôi sẽ cho bạn thấy một lý do thuyết phục hơn để sử dụng Groovy
đối với bean được quản lý
User.
Hầu hết trường hợp, bạn sẽ muốn cấu hình đầy đủ các thành phần đăng nhập với các lời nhắc và văn bản kèm theo nút, như trong Hình 4:
##### Hình 4. Một thành phần
login được cấu hình đầy đủ
![ Một thành phần login được cấu hình đầy đủ](login.jpg)
Liệt kê 5 cho thấy tài liệu đánh dấu siêu văn bản tạo ra thành phần
login trong
[Hình 4](#fig4):
##### Liệt kê 5. Cấu hình thành phần
login
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:util="http://java.sun.com/jsf/composite/components/util"> <util:login loginPrompt="#{msgs.loginPrompt}" namePrompt="#{msgs.namePrompt}" passwordPrompt="#{msgs.passwordPrompt}" loginButtonText="#{msgs.loginButtonText}" loginAction="#{user.login}" managedBean="#{user}"/> </ui:composition>
Trong
[Liệt kê 5](#listing5), tôi nhận được các chuỗi ký tự với
lời nhắc và văn bản kèm theo nút đăng nhập từ một gói tài nguyên.
Liệt kê 6 định nghĩa thành phần
login:
##### Liệt kê 6. Định nghĩa thành phần
login
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    <
composite:interface>  <composite:attribute name="loginPrompt"/> <composite:attribute name="namePrompt"/> <composite:attribute name="passwordPrompt"/>  <composite:attribute name="loginButtonText"/>  <composite:attribute name="loginAction" method-signature="java.lang.String login()" required="true"/>  <composite:actionSource name="loginButton" targets="form:loginButton"/>  <composite:attribute name="managedBean" required="true"/> </composite:interface>  < composite:implementation>
 #{ cc.attrs.loginPrompt}
  <h:form id="form"> <h:panelGrid columns="2">  #{ cc.attrs.namePrompt} <h:inputText id="name" value="#{ cc.attrs.managedBean.name}"/> #{ cc.attrs.passwordPrompt} <h:inputSecret id="password" size="8" value="#{ cc.attrs.managedBean.password}"/> </h:panelGrid>
  <h:commandButton id="loginButton" value="#{ cc.attrs.loginButtonText}" action="#{ cc.attrs.loginAction}"/>
 </h:form> </composite:implementation>
Cũng giống như thành phần
map (bản đồ), thành
phần
login có thể sử dụng nâng cấp bằng Ajax.
Trong mục
[Xác nhận hợp lệ](#validation) của lời khuyên tiếp
theo, tôi sẽ cho bạn thấy làm thế nào để thêm việc xác nhận hợp lệ bằng
Ajax cho thành phần đăng nhập login.
## Lời khuyên 2: Hãy Ajax hóa
Ajax điển hình thường đòi hỏi hai bước mà thông thường các yêu cầu HTTP không Ajax đã không làm như thế: xử lý từng phần các biểu mẫu trên máy chủ và biểu hiện từng phần kết quả của Mô hình đối tượng tài liệu (Document Object Model-DOM) trên máy khách.
### Xử lý và biểu hiện từng phần
JSF 2 hỗ trợ xử lý và biểu hiện từng phần bằng cách phân tách vòng đời của JSF thành hai phần lô-gic riêng biệt: thi hành và biểu hiện. Hình 5 nêu bật phần thi hành:
##### Hình 5. Phần thi hành của vòng đời JSF
![ Phần thi hành của vòng đời](lifecycle-execute.gif)
Hình 6 nêu bật phần biểu hiện của vòng đời của JSF:
##### Hình 6. Phần biểu hiện của vòng đời JSF
![ Phần biểu hiện của vòng đời](lifecycle-render.gif)
Ý tưởng đằng sau các phần thi hành và biểu hiện trong vòng đời là đơn giản:
bạn có thể quy định các thành phần mà JSF thi hành (xử lý) chúng trên máy
chủ và các thành phần mà JSF biểu hiện khi một cuộc gọi Ajax trả về. Bạn
làm điều đó với thẻ
<f:ajax>, là thẻ mới
cho JSF 2, như thể hiện trong Liệt kê 7:
##### Liệt kê 7. Trình đơn phóng to của Ajax
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <h:selectOneMenu id="menu"
value="#{cc.parent.attrs.location.zoomIndex}" style="font-size:13px;font-family:Palatino"> <f:ajax event="change" execute="@this" render="map"/><f:selectItems value="#{places.zoomLevelItems}"/> </h:selectOneMenu> <m:map id=" map"...> [Liệt kê 7](#listing7) là sửa đổi của trình đơn được chỉ ra
trong dòng đầu tiên của [Liệt kê 2](#listing2): Tôi đã gỡ bỏ
thuộc tính
onchange khỏi
[Liệt kê 2](#listing2) và đã thêm một thẻ
<f:ajax>. Thẻ
<f:ajax>
đó xác định:
- Sự kiện kích hoạt cuộc gọi Ajax.
- Một thành phần để thi hành trên máy chủ.
- Một thành phần để biểu hiện trên máy khách.
Khi người sử dụng chọn một mục từ trình đơn phóng to, JSF bắt đầu một cuộc
gọi Ajax đến máy chủ. Sau đó, JSF chuyển trình đơn đến phần thi hành của
vòng đời (
@this có nghĩa là thành phần bao
quanh của
<f:ajax>) và cập nhật
zoomIndex của trình đơn trong giai đoạn Cập nhật
các giá trị mô hình của vòng đời. Khi cuộc gọi Ajax trả về, JSF biểu hiện
thành phần map (bản đồ), sử dụng chỉ số phóng to (vừa mới được thiết lập)
để vẽ lại bản đồ và bây giờ bạn có một trình đơn phóng to được xử lý bằng
Ajax, chỉ thêm một dòng XHTML.
Nhưng còn có thể làm mọi việc đơn giản hơn nữa, bởi vì JSF cung cấp các giá
trị mặc định cho các thuộc tính
event (sự kiện)
và
execute (thi hành).
Mỗi thành phần JSF có một sự kiện mặc định để kích hoạt các cuộc gọi Ajax
nếu bạn nhúng một thẻ
<f:ajax> bên trong
thẻ thành phần. Đối với các trình đơn, sự kiện đó là sự kiện
change (thay đổi). Điều đó có nghĩa là tôi có thể
bỏ thuộc tính
event của
<f:ajax> trong
[Liệt kê 7](#listing7). Giá
trị mặc định cho thuộc tính
execute của
<f:ajax> là
@this, nghĩa là thành phần bao quanh của thẻ
<f:ajax>. Trong ví dụ này, thành phần đó là
trình đơn, vì vậy tôi cũng có thể bỏ thuộc tính
execute.
Bằng cách sử dụng các giá trị thuộc tính mặc định cho
<f:ajax>, tôi có thể rút gọn
[Liệt kê
7](#listing7) thành Liệt kê 8:
##### Liệt kê 8. Phiên bản đơn giản hơn của một trình đơn Ajax phóng to
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <h:selectOneMenu id="menu" value="#{cc.parent.attrs.location.zoomIndex}" style="font-size:13px;font-family:Palatino">
<f:ajax render="map"/><f:selectItems value="#{places.zoomLevelItems}"/> </h:selectOneMenu> <m:map id="map"...>
Điều này cho thấy việc thêm Ajax cho các thành phần của bạn với JSF 2 dễ dàng như thế nào. Tất nhiên, ví dụ trên là khá đơn giản: Tôi đơn giản chỉ vẽ lại bản đồ thay vì toàn bộ cả trang khi người sử dụng chọn một mức phóng to. Một số phép toán, như là việc xác nhận hợp lệ một trường riêng biệt trong một biểu mẫu, sẽ phức tạp hơn, do đó, tiếp theo tôi sẽ giải quyết các trường hợp sử dụng đó.
### Xác nhận hợp lệ
Xác nhận hợp lệ các trường và cung cấp thông tin phản hồi ngay lập tức khi người sử dụng nhập xong dữ liệu và ra khỏi một trường là một ý tưởng tốt. Ví dụ, trong Hình 7, tôi đang sử dụng Ajax để xác nhận hợp lệ trường tên:
##### Hình 7. Xác nhận hợp lệ của Ajax
![ Xác nhận hợp lệ của Ajax](no_underscores.jpg)
Mã đánh dấu siêu văn bản tạo ra trường tên được hiển thị trong Liệt kê 9:
##### Liệt kê 9. Trường name
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <h:panelGrid columns="2"> #{cc.attrs.namePrompt} <h:panelGroup> <h:inputText id="name" value="#{cc.attrs.managedBean.name}"
valueChangeListener="#{cc.attrs.managedBean.validateName}"> < f:ajaxevent=" blur" render=" nameError"/> </h:inputText> <h:outputText id=" nameError" value="#{cc.attrs.managedBean. nameError}" style="color: red;font-style: italic;"/> </h:panelGroup> ... </h:panelGrid>
Một lần nữa, tôi sử dụng
<f:ajax>, chỉ có
điều là lần này sự kiện mặc định cho đầu vào —
change—sẽ không áp dụng được, vì vậy tôi xác định
blur (làm mờ đi) là sự kiện kích hoạt cuộc gọi
Ajax. Khi người sử dụng ra khỏi trường tên, JSF bắt đầu một cuộc gọi Ajax
đến máy chủ và chạy thành phần đầu vào
name
thuộc giai đoạn thi hành của vòng đời. Điều này có nghĩa rằng JSF sẽ gọi
trình nghe thay đổi giá trị đầu vào của
name
như đã chỉ rõ trong
[Liệt kê 9](#listing9) trong giai đoạn xác
nhận hợp lệ của vòng đời. Liệt kê 10 hiển thị trình nghe thay đổi giá trị
ấy:
##### Liệt kê 10. Phương thức
validateName()
package com.clarity import javax.faces.context.FacesContext import javax.faces.bean.ManagedBean import javax.faces.bean.SessionScoped import javax.faces.event.ValueChangeEvent import javax.faces.component.UIInput @ManagedBean() @SessionScoped public class User { private String name, password, nameError; ... public void
validateName(ValueChangeEvent e) { UIInput nameInput = e.getComponent() String name = nameInput.getValue() if (name.contains("_")) nameError= "Name cannot contain underscores" else if (name.equals("")) nameError= "Name cannot be blank" else nameError= "" } ... }
Trình nghe thay đổi-giá trị — Phương thức
validateName() của bean được quản lý
user (người sử dụng) — xác nhận
hợp lệ trường tên và cập nhật thuộc tính
nameError của bean được quản lý
user.
Sau khi cuộc gọi Ajax trả về, nhờ có thuộc tính
render của thẻ
<f:ajax> trong
[Liệt kê 9](#listing9), JSF biểu hiện kết quả đầu ra
nameError. Đầu ra đó hiển thị thuộc tính
nameError của bean được quản lý
user.
### Xác nhận hợp lệ nhiều trường
Trong tiểu mục trên, tôi đã cho bạn thấy làm thế nào để thực hiện xác nhận hợp lệ bằng Ajax cho một trường duy nhất. Tuy nhiên, đôi khi bạn cần phải xác nhận hợp lệ nhiều trường cùng một lúc. Ví dụ, Hình 8 cho thấy ứng dụng các địa điểm xác nhận hợp lệ các trường tên và mật khẩu cùng nhau:
##### Hình 8. Xác nhận hợp lệ nhiều trường
![ Xác nhận hợp lệ nhiều trường](multi-field-validation.jpg)
Tôi xác nhận hợp lệ trường tên và mật khẩu cùng nhau khi người sử dụng gửi đi biểu mẫu, vì vậy tôi không cần Ajax cho ví dụ này. Thay vào đó, tôi sẽ sử dụng hệ thống sự kiện mới của JSF 2, như thể hiện trong Liệt kê 11:
##### Liệt kê 11. Sử dụng
<f:event>
<h:form id="form" prependId="false"> <
f:eventtype=" postValidate" listener="#{cc.attrs.managedBean.validate}"/> ... </h:form>
 <h:messages layout="table"/>

Trong
[Liệt kê 11](#listing11), tôi sử dụng
<f:event>, — giống như
<f:ajax>
— là điểm mới của JSF 2. Thẻ
<f:event> cũng tương tự như
<f:ajax> ở khía cạnh khác, đó là: sử dụng rất đơn giản.
Bạn đặt một thẻ
<f:event> bên trong một
thẻ thành phần và khi sự kiện đã xác định (bằng thuộc tính
type) xảy ra đối với thành phần đó, JSF gọi một
phương thức, chỉ rõ bởi thuộc tính
listener
(trình nghe). Vì vậy, theo tiếng Anh, thẻ
<f:event> trong
[Liệt kê 11](#listing11) có
nghĩa là: Sau khi xác nhận hợp lệ biểu mẫu, gọi phương thức
validate() của bean được quản lý mà người sử dụng
đã chuyển cho thành phần phức hợp này. Đó là phương thức được chỉ ra trong
Liệt kê 12:
##### Liệt kê 12. Phương thức
validate()
package com.clarity import javax.faces.context.FacesContext import javax.faces.bean.ManagedBean import javax.faces.bean.SessionScoped import javax.faces.event.ValueChangeEvent import javax.faces.component.UIInput @ManagedBean() @SessionScoped public class User { private final String VALID_NAME = "Hiro"; private final String VALID_PASSWORD = "jsf"; ... public void
validate(ComponentSystemEvent e) { UIForm form = e.getComponent() UIInput nameInput = form.findComponent("name") UIInput pwdInput = form.findComponent("password") if ( ! (nameInput.getValue().equals(VALID_NAME) && pwdInput.getValue().equals(VALID_PASSWORD))) { FacesContext fc = FacesContext.getCurrentInstance() fc.addMessage(form.getClientId(), new FacesMessage("Name and password are invalid. Please try again.")) fc.renderResponse() } } ... }
JSF chuyển cho phương thức
validate() trong
[Liệt kê 12](#listing12) một sự kiện hệ thống thành phần, từ
đó phương thức này nhận được một tham chiếu đến thành phần mà sự kiện này
áp vào nó — đó là biểu mẫu đăng nhập. Từ biểu mẫu đó, tôi
sử dụng phương thức
findComponent() để nhận
được các thành phần tên và mật khẩu. Nếu các giá trị của các thành phần đó
tương ứng không phải là Hiro và JSF, tôi lưu thông báo trên bối cảnh faces
(các mặt ngoài) và ra lệnh cho JSF bắt đầu ngay giai đoạn đáp ứng biểu
hiện (Render Response) của vòng đời. Theo cách này, tôi tránh được giai
đoạn Cập nhật các giá trị mô hình (Update Model Values), trong đó sẽ đẩy
tên và mật khẩu không đúng đến mô hình (xem
[Hình
5](#fig5)).
Bạn có thể đã nhận thấy rằng các phương thức xác nhận hợp lệ trong
[Liệt kê 10](#listing10) và [Liệt kê
12](#listing12) được viết bằng Groovy. Không giống như [Liệt
kê 4](#listing2), ở đó lợi thế duy nhất để sử dụng Groovy là không có các dấu
chấm phẩy và các câu lệnh return, mã Groovy trong [Liệt kê 10](#listing10) và [Liệt kê 12](#listing12) giải phóng tôi
khỏi phải ép kiểu (casting). Ví dụ, trong [Liệt kê
10](#listing10),
ComponentSystemEvent.getComponent()
và
UIComponent.findComponent() cả hai đều trả
về kiểu
UIComponent. Với ngôn ngữ Java, tôi sẽ
phải ép kiểu các giá trị trả về của các phương thức đó. Groovy thực hiện
ép kiểu cho tôi.
## Lời khuyên 3: Hãy cho xem tiến độ
Trong phần
[Hãy Ajax hóa](#tip2), tôi đã cho bạn thấy làm thế
nào để xử lý bằng Ajax trình đơn phóng to cho thành phần
map, sao cho ứng dụng các địa điểm chỉ vẽ lại
phần bản đồ của trang khi người dùng thay đổi mức phóng to. Một trường hợp
phổ biến sử dụng Ajax là cung cấp một phản hồi đến người dùng, khi một sự
kiện Ajax đang tiến triển, như Hình 9:
##### Hình 9. Một thanh tiến độ
![ Một thanh tiến độ](barber-pole.jpg)
Trong
[Hình 9](#fig9), tôi đã thay thế trình đơn phóng to bằng
một hoạt hình GIF, hiển thị trong khi cuộc gọi Ajax đang tiến triển. Khi
cuộc gọi Ajax hoàn thành, tôi thay thế bộ chỉ thị tiến độ bằng trình đơn
phóng to. Liệt kê 13 cho thấy nó được thực hiện như thế nào:
##### Liệt kê 13. Theo dõi một yêu cầu của Ajax
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <h:selectOneMenu id="menu" value="#{cc.parent.attrs.location.zoomIndex}" style="font-size:13px;font-family:Palatino"> <f:ajax render="map"
onevent="zoomChanging"/> <f:selectItems value="#{places.zoomLevelItems}"/> ... </h:selectOneMenu> ... <h:graphicImage id=" progressbar" style="display: none" library="images" name="orange-barber-pole.gif"/>
Trong
[Liệt kê 13](#listing13), tôi thêm một hình ảnh thanh tiến
độ, ban đầu không được hiển thị và xác định thuộc tính
onevent cho
<f:ajax>. Thuộc
tính này tham chiếu một hàm JavaScript, hiển thị trong
[Liệt kê 14](#listing14), mà JSF sẽ gọi hàm đó khi cuộc gọi
Ajax bắt đầu trong [Liệt kê 13](#listing13) đang tiến
triển:
##### Liệt kê 14. JavaScript để đáp ứng một yêu cầu Ajax
function zoomChanging(data) { var menuId = data.source.id; var progressbarId = menuId.substring(0, menuId.length - "menu".length) + "progressbar"; if (data.name == "begin") { Element.hide(menuId); Element.show(progressbarId); } else if (data.name == "success") { Element.show(menuId); Element.hide(progressbarId); } }
Trong
[Liệt kê 14](#listing14), JSF chuyển cho hàm này một đối
tượng có chứa một số thông tin, như là mã nhận dạng máy khách của thành
phần đã bắt đầu thực hiện sự kiện (trong trường hợp này, đó là trình đơn
mức phóng to) và trạng thái hiện tại của yêu cầu Ajax, được biểu diễn bởi
một thuộc tính được đặt tên không thích đáng lắm là
name.
Hàm
zoomChanging() hiển thị trong
[Liệt kê 14](#listing14) tính toán mã nhận dạng máy khách của
hình ảnh thanh tiến trình và sau đó sử dụng đối tượng
Element (phần tử) nguyên mẫu để ẩn giấu và hiển thị các phần
tử HTML thích hợp trong thời gian cuộc gọi Ajax.
## Kết luận
Trong những năm qua, JSF 1 đã có tiếng như là một khung công tác rất khó sử dụng. Trong nhiều khía cạnh, danh tiếng đó là đúng. JSF 1 đã được phát triển trong một tháp ngà mà không nhận thức ra được rằng việc sử dụng trong thế giới thực mới có đủ khả năng. Kết quả là, JSF đã tạo ra cho nó nhiều khó khăn để triển khai các ứng dụng và các thành phần hơn nó vốn có.
JSF 2, mặt khác, đã được sinh ra từ thử thách khắc nghiệt của thế giới thực, bởi công chúng, những người đã triển khai thực hiện các dự án mã nguồn mở bên trên JSF 1. Các nhận thức sau này trong thế giới thực đã dẫn đến một khung công tác hiểu biết nhiều hơn, làm cho dễ dàng triển khai thực hiện các ứng dụng Ajax hóa mạnh mẽ.
Trong suốt loạt bài này, tôi đã cho bạn thấy một số đặc tính JSF 2 nổi bật nhất, chẳng hạn như các chú giải và quy ước để thay thế việc cấu hình, việc dẫn hướng được đơn giản hóa, hỗ trợ cho sử dụng tài nguyên, các thành phần phức hợp, Ajax gắn sẵn và mô hình sự kiện mở rộng. Nhưng JSF 2 có nhiều đặc tính hơn nữa mà tôi đã không trình bày được trong loạt bài này, chẳng hạn như các phạm vi của View và Page (Khung nhìn và Trang), hỗ trợ cho các trang có khả năng đánh dấu và Giai đoạn dự án (Project Stage). Tất cả những đặc tính đó và nhiều hơn nữa, làm cho JSF 2 được cải tiến rất nhiều so với phiên bản ban đầu của nó.
## Tải về
|Mô tả||Tên||Kích thước|
|Source code for the article examples|
## Tài nguyên
### Học tập
[Trang chủ JSF](https://javaserverfaces.dev.java.net/): Tìm thêm tài nguyên về phát triển với JSF. [GMaps4JSF](http://code.google.com/p/gmaps4jsf/): Thư viện này giúp những người sử dụng JSF xây dựng ứng dụng trộn, sử dụng các bản đồ của Google (Google Maps). [Blog của Roger Kitain](http://weblogs.java.net/blog/rogerk/): Roger Kitain và Ed Burns cùng đứng đầu nhóm đặc tả cho JSF 2.0. [Blog của Jim Driscoll](http://weblogs.java.net/blog/driscoll/): Bạn sẽ tìm thấy nhiều mục có liên quan đến JSF 2. [Blog của Ryan Lubke](http://blogs.sun.com/rlubke): Ryan Lubke làm việc về triển khai thực hiện tham chiếu JSF 2. [Vùng công nghệ Java của developerWorks](http://www.ibm.com/developerworks/java?S_TACT=105AGY75): Tìm hàng trăm bài viết về mọi khía cạnh về lập trình Java.
### Lấy sản phẩm và công nghệ
### Thảo luận
- "
[Truy cập công khai đến các cuộc thảo luận JSF 2.0 JSR-314-EG hiện đã có sẵn](http://weblogs.java.net/blog/edburns/archive/2009/03/response_to_a_c.html)" (Ed Burns's Blog, java.net, 03.2009): Tìm hiểu cách đăng ký vào danh sách gửi thư của nhóm chuyên gia JSF2.
- Dành tâm trí cho
[cộng đồng My developerWorks](http://www.ibm.com/developerworks/mydeveloperworks?S_TACT=105AGY75).
## Bình luận
[Vùng dữ liệu trên developerWorks](http://www.ibm.com/developerworks/vn/views/data/libraryview.jsp)
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
[Vùng mã nguồn mở trên developerWorks](http://www.ibm.com/developerworks/vn/views/opensource/libraryview.jsp)
Xem các bài viết về HTML, CSS, JavaScript,...
[Điện toán đám mây](http://www.ibm.com/developerworks/vn/views/cloud/libraryview.jsp)
Tìm hiểu về điện toán đám mây

Content-Language: en-US

Kp-eeAlive: timeout=10, max=88


text:
Bộ
Tài chính Cộng
hoà xã hội chủ nghĩa Việt Nam
Độc
lập - Tự do - Hạnh phúc
Số
90/2007/QĐ-BTC
Hà Nội,
ngày 26 tháng 10 năm 2007
QUYếT ĐịNH
Về việc ban hành Quy định về mã số các đơn
vị có quan hệ với ngân sách
Bộ TRƯởNG Bộ TàI CHíNH
Căn cứ Luật Ngân sách nhà nước ngày 16/12/2002
và Nghị định số 60/2003/NĐ-CP ngày 6/6/2003 của Chính phủ quy định chi tiết và
hướng dẫn thi hành Luật Ngân sách Nhà nước;
Căn cứ Luật Kế toán ngày 17/06/2003;
Căn cứ Luật Xây dựng ngày 26/11/2003, Nghị định
số 16/2005/NĐ-CP ngày 7/2/2005 của Chính phủ về Quản lý dự án đầu tư xây dựng
công trình và Nghị định số 112/2006/NĐ-CP ngày 29/9/2006 của Chính phủ về sửa đổi,
bổ sung một số điều của Nghị định số 16/2005/NĐ-CP ngày 7/2/2005;
Căn cứ Nghị định số 52/1999/NĐ-CP ngày 8/7/1999
của Chính phủ về việc ban hành Quy chế Quản lý đầu tư và xây dựng, Nghị định số
12/2000/NĐ-CP ngày 05/5/2000 và số 07/2003/NĐ-CP ngày 30/01/2003 của Chính phủ
về việc sửa đổi, bổ sung một số điều của Quy chế Quản lý đầu tư và xây dựng ban
hành kèm theo Nghị định số 52/1999/NĐ-CP ngày 8/7/1999 của Chính phủ;
Căn cứ Nghị định số 71/2005/NĐ-CP ngày 06/6/2005
của Chính phủ về Quản lý đầu tư xây dựng công trình đặc thù;
Căn cứ Nghị định số 86/2002/NĐ-CP ngày
05/11/2002 của Chính phủ quy định chức năng, nhiệm vụ, quyền hạn và cơ cấu tổ
chức của Bộ, cơ quan ngang Bộ;
. . . . . . . . . . . . . . . .

Content-Type: text/html

Cache-control: private


text:
- Sử dụng tiền ký quỹ trong hoạt động bán hàng đa cấp theo quy định mới
- Nhà ở thương mại đủ điều kiện giao dịch qua sàn Bất động sản
- Điều kiện đối với người nhận con nuôi
- Quyền sở hữu nhà ở tại Việt Nam của cá nhân, tổ chức nước ngoài
- Người nước ngoài, người Việt Nam định cư ở nước ngoài không thuộc diện sở hữu nhà ở tại Việt Nam
- Quyền thừa kế theo quy định pháp luật Việt Nam
- Cơ cấu tổ chức của văn phòng đăng ký đất đai theo luật đất đai mới 2013
- Những lưu ý khi lập di chúc để lại tài sản
- Quyền góp vốn, mua cổ phần của các tổ chức trong doanh nghiệp khác
- Không công nhận là vợ chồng khi giải quyết ly hôn

markdown: [Sử dụng tiền ký quỹ trong hoạt động bán hàng đa cấp theo quy định mới](http://www.luatdongdo.com/details/su-dung-tien-ky-quy-trong-hoat-dong-ban-hang-da-cap-theo-quy-dinh-moi) [Nhà ở thương mại đủ điều kiện giao dịch qua sàn Bất động sản](http://www.luatdongdo.com/details/nha-o-thuong-mai-du-dieu-kien-giao-dich-qua-san-bat-dong-san) [Điều kiện đối với người nhận con nuôi](http://www.luatdongdo.com/details/dieu-kien-doi-voi-nguoi-nhan-con-nuoi) [Quyền sở hữu nhà ở tại Việt Nam của cá nhân, tổ chức nước ngoài](http://www.luatdongdo.com/details/quyen-so-huu-nha-o-tai-viet-nam-cua-ca-nhan-to-chuc-nuoc-ngoai) [Người nước ngoài, người Việt Nam định cư ở nước ngoài không thuộc diện sở hữu nhà ở tại Việt Nam](http://www.luatdongdo.com/details/nguoi-nuoc-ngoai-nguoi-viet-nam-dinh-cu-o-nuoc-ngoai-khong-thuoc-dien-so-huu-nha-o-tai-viet-nam) [Quyền thừa kế theo quy định pháp luật Việt Nam](http://www.luatdongdo.com/details/quyen-thua-ke-theo-quy-dinh-phap-luat-viet-nam) [Cơ cấu tổ chức của văn phòng đăng ký đất đai theo luật đất đai mới 2013](http://www.luatdongdo.com/details/co-cau-to-chuc-cua-van-phong-dang-ky-dat-dai-theo-luat-dat-dai-moi-2013) [Những lưu ý khi lập di chúc để lại tài sản](http://www.luatdongdo.com/details/nhung-luu-y-khi-lap-di-chuc-de-lai-tai-san) [Quyền góp vốn, mua cổ phần của các tổ chức trong doanh nghiệp khác](http://www.luatdongdo.com/details/quyen-gop-von-mua-co-phan-cua-cac-to-chuc-trong-doanh-nghiep-khac) [Không công nhận là vợ chồng khi giải quyết ly hôn](http://www.luatdongdo.com/details/khong-cong-nhan-la-vo-chong-khi-giai-quyet-ly-hon)

Cache-Control: max-age=600, private, must-revalidate


text:
Mặc Lâm phỏng vấn GS Tương Lai, nguyên Viện trưởng Viện Khoa học Xã Hội Việt Nam để biết thêm ý kiến của một đảng viên lão thành trước diễn tiến cũng như kết quả của Hội nghị 6.
Trước tiên Giáo sư Tương Lai cho biết:
Kết quả là số không! Đây là một sự thất bại thảm hại. Bởi vì Ban chấp hành Trung ương là cơ quan quyền lực cao nhất của đảng.
GS Tương Lai
GS Tương Lai: Ai cũng biết rằng thực chất hội nghị này là để giải quyết một vấn đề nổi cộm và muốn qua đó kỷ luật một anh mà xét về mặt hiện tượng thì nó đã tạo nên sự phẫn nộ trong dân chúng về hành vi tham nhũng, độc đoán, vội vã gây nên những hệ lụy rất tai hại. Nếu làm được điều này thì có nghĩa là lấy lại được uy tín cho ông Tồng bí thư, cho Bộ chính trị, cho Ban chấp hành Trung ương và nói chung cho thể chế chính trị mà ông Nguyễn Phú Trọng đang là người đứng mũi chịu sào.
Mặc Lâm: Thưa GS, tuy nói thế nhưng cuối cùng thì nhân vật mang tên “một đồng chí trong bộ chính trị” vẫn không nhận bất cứ kỷ luật hay chế tài nào. Như vậy thì kết quả của hội nghị có thanh công như Tổng bí thư khẳng định hay không?
GS Tương Lai: Kết quả là số không! Đây là một sự thất bại thảm hại. Bởi vì Ban chấp hành Trung ương là cơ quan quyền lực cao nhất của đảng. Thực ra Đại hội là cơ quan cao nhất nói về mặt đảng, Bộ Chính trị chỉ là cơ quan điều hành thôi, nhưng mà lâu nay người ta biến nơi đó thành một thứ đảng, phải nói là siêu đảng.Thật ra đứng về mặt nguyên lý và điều lệ thì Ban chấp hành Trung ương mới là cơ quan cao nhất. Vậy thì kết quả của Ban chấp hành Trung ương người ta biểu quyết với tỷ lệ hơn 70 % không đồng ý với quyết định của ông Tổng bí thư và của Bộ chính trị, nhưng vẫn không kỷ luật hay đưa ra một biện pháp nào thì điều đó nói lên rằng bên này bên kia là rất phức tạp trong cơ quan quyền lực cao nhất của đảng. Đồng thời cũng là cơ quan giữ trách nhiệm cao nhất về sự tồn vong của chế độ. Nếu kỷ luật được cái ông Ủy viên Bộ chính trị mà người ta không nói tên ra nhưng ai cũng biết, ngay một việc đơn giản ấy cũng không làm nỗi!
Mặc Lâm: Điểm mà người dân chú ý và hy vọng nhất là luật đất đai sẽ được thay đổi nhưng Tổng bí thư khẳng định đất đai vẫn thuộc sở hữu toàn dân, có nghỉa là không ai được có cái quyền tư hữu. Theo GS hành động này của đảng, của hội nghị có sáng suốt và thích hợp với nhu cầu thiết yếu của toàn dân hay không?
GS Tương Lai: Đương nhiên cũng có thể cải tiến chỗ này chỗ nọ như là một chiếc áo chấp mảnh vá cắt ở phía dưới đưa lên cầu vai. Đưa một mảnh sau lưng ra trước ngực…nhưng về cơ bản cái áo khoác nó rộng cỡ về sở hữu toàn dân, nó vẫn trùm lên toàn bộ vấn đề đất đai thì làm sao giải quyết được vần đề đất đai hiện nay?
Bởi vì nhân danh toàn dân, nhân danh nhà nước nên người ta sẵn sàng cướp đất của dân mà pháp luật thì đứng về phía những người ăn cướp. Vậy thì làm sao thỏa mãn nhu cầu của dân được?
Mặc Lâm: Khi mà đảng không thấy có nhu cầu phải theo nguyện vọng của dân thì cũng đồng nghĩa với việc chấp nhận đối đầu với những tranh đấu sẽ tiếp tục xảy ra. Như vậy thì giải pháp chấp vá ấy có khác gì giải khát bằng thuốc độc?
Những người làm chính trị khôn ngoan hiện nay chính là phải tìm những giải pháp khác để làm yên lòng dân.
GS Tương Lai
GS Tương Lai: Về mặt logic thì hình như có vẻ đúng như thế. Nhưng trong diễn bíến tình hình thì tôi không tin nó sẽ diễn ra như thế. Tôi vẫn tin rằng trong Ban chấp hành Trung ương qua biểu quyết vừa rồi tôi hiểu có những người người ta đã suy tính, chỉ có điều là người ta có nói ra hay không. Lựa chọn thái độ lúc nào thì người ta nói ra hay không nói ra. Vì vậy không cho phép tiếp tục giải khát bằng thuốc độc đâu, tức là đàn áp, dùng bạo lực để đè bẹp tinh thần dân chủ. Tôi tin người ta không dám làm điều ấy, và muốn cũng không làm được mặc dầu về mặt logic thì điều này có thể diễn ra nhưng thực tế tình hình đã dạy cho người ta bài học nếu làm chuyện đó thì người ta sẽ không còn gì nữa.
Kết quả của hội nghị này nó đã đưa đến sự mất lòng dân ghê gớm. Những người làm chính trị khôn ngoan hiện nay chính là phải tìm những giải pháp khác để làm yên lòng dân.
Mặc Lâm: Trong bản tổng kết ông Tổng bí thư không hề có một câu nào nhắc tới vấn đề bảo vệ chủ quyền biển đảo, cụ thể là Biển Đông. Theo GS thì việc gì đang xảy ra phía sau hội nghị này? Phải chăng yếu tố Trung Quốc đang khống chế, bao trùm lên tất cả?
GS Tương Lai: Với một hội nghị trung ương quan trọng như thế, bàn thảo nào là vấn đề kinh tế, vấn đề giáo dục, rồi công nghiệp… đủ cả, nhưng không động một câu tới thực tế Biển Đông. Ông Chủ tịch nước đã phát biểu và báo Tuổi Trẻ đã giật một cái tít rất dài là: “Không được để vấn đề Biển Đông ảnh hưởng đến mối quan hệ Việt Trung” Vậy thì thực chất mối quan hệ Việt Trung này là gì? Vấn đề Biển Đông là gì?
Đúng lúc Hội nghị trung ương 6 khai mạc thì chúng nó tổ chức mừng quốc khánh nước Cộng hòa Nhân dân Trung Hoa tại thành phố Tam Sa. Lúc chúng làm như thế không biết Bộ Ngoại giao ta có biết không mà ém nhẹm đi để vẫn có một lời chúc mừng thắm thiết thì tôi thấy đấy là một xúc phạm ghê gớm đối với lòng tự tôn dân tộc.
Đương nhiên đứng về mặt ngoại giao chúc mừng thì cứ chúc mừng, thậm chí vừa nhổ nước bọt vào nhau mà vẫn chìa tay ra bắt tay nhau thì đấy là chuyện bình thường trong ngoại giao. Nhưng khi chúng nó kéo cờ quốc khánh của chúng nó trên lãnh thổ của chúng ta. Trên cái thành phố mà chúng nó thành lập ra ở Hoàng Sa trong đó gồm cả Trường Sa nữa để chúng nó mừng quốc khánh mà chúng ta vẫn gửi thư chúc mừng lời lẽ không có một cái gì khác, thì đấy là một nỗi nhục mà những người trí thức nào còn một chút nhân phẩm và lương tri không thề không phẫn nộ và lên án.
Mặc Lâm: Xin cám ơn GS

markdown:
Mặc Lâm phỏng vấn GS Tương Lai, nguyên Viện trưởng Viện Khoa học Xã Hội Việt Nam để biết thêm ý kiến của một đảng viên lão thành trước diễn tiến cũng như kết quả của Hội nghị 6.
*Trước tiên Giáo sư Tương Lai cho biết:*
Kết quả là số không! Đây là một sự thất bại thảm hại. Bởi vì Ban chấp hành Trung ương là cơ quan quyền lực cao nhất của đảng.
GS Tương Lai
**GS Tương Lai: **Ai cũng biết rằng thực chất hội nghị này là để giải quyết một vấn đề nổi cộm và muốn qua đó kỷ luật một anh mà xét về mặt hiện tượng thì nó đã tạo nên sự phẫn nộ trong dân chúng về hành vi tham nhũng, độc đoán, vội vã gây nên những hệ lụy rất tai hại. Nếu làm được điều này thì có nghĩa là lấy lại được uy tín cho ông Tồng bí thư, cho Bộ chính trị, cho Ban chấp hành Trung ương và nói chung cho thể chế chính trị mà ông Nguyễn Phú Trọng đang là người đứng mũi chịu sào. **Mặc Lâm: ** *Thưa GS, tuy nói thế nhưng cuối cùng thì nhân vật mang tên “một đồng chí trong bộ chính trị” vẫn không nhận bất cứ kỷ luật hay chế tài nào. Như vậy thì kết quả của hội nghị có thanh công như Tổng bí thư khẳng định hay không? * **GS Tương Lai: **Kết quả là số không! Đây là một sự thất bại thảm hại. Bởi vì Ban chấp hành Trung ương là cơ quan quyền lực cao nhất của đảng. Thực ra Đại hội là cơ quan cao nhất nói về mặt đảng, Bộ Chính trị chỉ là cơ quan điều hành thôi, nhưng mà lâu nay người ta biến nơi đó thành một thứ đảng, phải nói là siêu đảng. **Mặc Lâm: ** *Điểm mà người dân chú ý và hy vọng nhất là luật đất đai sẽ được thay đổi nhưng Tổng bí thư khẳng định đất đai vẫn thuộc sở hữu toàn dân, có nghỉa là không ai được có cái quyền tư hữu. Theo GS hành động này của đảng, của hội nghị có sáng suốt và thích hợp với nhu cầu thiết yếu của toàn dân hay không?* **GS Tương Lai: **Đương nhiên cũng có thể cải tiến chỗ này chỗ nọ như là một chiếc áo chấp mảnh vá cắt ở phía dưới đưa lên cầu vai. Đưa một mảnh sau lưng ra trước ngực…nhưng về cơ bản cái áo khoác nó rộng cỡ về sở hữu toàn dân, nó vẫn trùm lên toàn bộ vấn đề đất đai thì làm sao giải quyết được vần đề đất đai hiện nay?
Bởi vì nhân danh toàn dân, nhân danh nhà nước nên người ta sẵn sàng cướp đất của dân mà pháp luật thì đứng về phía những người ăn cướp. Vậy thì làm sao thỏa mãn nhu cầu của dân được?
**Mặc Lâm: ** *Khi mà đảng không thấy có nhu cầu phải theo nguyện vọng của dân thì cũng đồng nghĩa với việc chấp nhận đối đầu với những tranh đấu sẽ tiếp tục xảy ra. Như vậy thì giải pháp chấp vá ấy có khác gì giải khát bằng thuốc độc?*
Những người làm chính trị khôn ngoan hiện nay chính là phải tìm những giải pháp khác để làm yên lòng dân.
GS Tương Lai
**GS Tương Lai: **Về mặt logic thì hình như có vẻ đúng như thế. Nhưng trong diễn bíến tình hình thì tôi không tin nó sẽ diễn ra như thế. Tôi vẫn tin rằng trong Ban chấp hành Trung ương qua biểu quyết vừa rồi tôi hiểu có những người người ta đã suy tính, chỉ có điều là người ta có nói ra hay không. Lựa chọn thái độ lúc nào thì người ta nói ra hay không nói ra. Vì vậy không cho phép tiếp tục giải khát bằng thuốc độc đâu, tức là đàn áp, dùng bạo lực để đè bẹp tinh thần dân chủ. Tôi tin người ta không dám làm điều ấy, và muốn cũng không làm được mặc dầu về mặt logic thì điều này có thể diễn ra nhưng thực tế tình hình đã dạy cho người ta bài học nếu làm chuyện đó thì người ta sẽ không còn gì nữa.
Kết quả của hội nghị này nó đã đưa đến sự mất lòng dân ghê gớm. Những người làm chính trị khôn ngoan hiện nay chính là phải tìm những giải pháp khác để làm yên lòng dân.
**Mặc Lâm: ** *Trong bản tổng kết ông Tổng bí thư không hề có một câu nào nhắc tới vấn đề bảo vệ chủ quyền biển đảo, cụ thể là Biển Đông. Theo GS thì việc gì đang xảy ra phía sau hội nghị này? Phải chăng yếu tố Trung Quốc đang khống chế, bao trùm lên tất cả?* **GS Tương Lai: **Với một hội nghị trung ương quan trọng như thế, bàn thảo nào là vấn đề kinh tế, vấn đề giáo dục, rồi công nghiệp… đủ cả, nhưng không động một câu tới thực tế Biển Đông. Ông Chủ tịch nước đã phát biểu và báo Tuổi Trẻ đã giật một cái tít rất dài là: “Không được để vấn đề Biển Đông ảnh hưởng đến mối quan hệ Việt Trung” Vậy thì thực chất mối quan hệ Việt Trung này là gì? Vấn đề Biển Đông là gì?
Đúng lúc Hội nghị trung ương 6 khai mạc thì chúng nó tổ chức mừng quốc khánh nước Cộng hòa Nhân dân Trung Hoa tại thành phố Tam Sa. Lúc chúng làm như thế không biết Bộ Ngoại giao ta có biết không mà ém nhẹm đi để vẫn có một lời chúc mừng thắm thiết thì tôi thấy đấy là một xúc phạm ghê gớm đối với lòng tự tôn dân tộc.
Đương nhiên đứng về mặt ngoại giao chúc mừng thì cứ chúc mừng, thậm chí vừa nhổ nước bọt vào nhau mà vẫn chìa tay ra bắt tay nhau thì đấy là chuyện bình thường trong ngoại giao. Nhưng khi chúng nó kéo cờ quốc khánh của chúng nó trên lãnh thổ của chúng ta. Trên cái thành phố mà chúng nó thành lập ra ở Hoàng Sa trong đó gồm cả Trường Sa nữa để chúng nó mừng quốc khánh mà chúng ta vẫn gửi thư chúc mừng lời lẽ không có một cái gì khác, thì đấy là một nỗi nhục mà những người trí thức nào còn một chút nhân phẩm và lương tri không thề không phẫn nộ và lên án.
**Mặc Lâm: ** *Xin cám ơn GS*

X-Cache-Lookup: HIT from localhost:8100

Via: 1.0 localhost (squid/3.1.14)


text:
Pedoman dan strategi untuk Belajar
Cẩm nang và chiến lược dành cho học tập
Nghệ thuật hay sự rèn luyện khả năng tập trung
Cho dù bạn đang học môn Sinh học hay đang học bơi, hãy tập trung vào việc bạn đang làm và hạn chế tối đa sự xao nhãng.
Tất cả chúng ta, ai cũng có khả năng tập trung, ít nhất là ở một thời điểm nào đó. Nghĩ đến những lúc mà bạn hoàn toàn bị cuốn vào một việc gì đó mà bạn thực sự say mê: một môn thể thao, chơi nhạc, một trò chơi hay, một bộ phim. Khi đó bạn đang tập trung tối đa đó.
Tuy nhiên lại có những lúc,
Những mẹo nhỏ này có thể giúp bạn: Gồm có
Những gì bạn có thể kiểm soát trong khi học tập
Những cách luyện tập tốt nhất
Bạn phải nhận thấy những tiến bộ sau một vài ngày
Nhưng cũng giống như bất kì một cách luyện tập nào khác, sẽ không tránh khỏi những lúc lên, lúc xuống.
Nó sẽ có lợi cho cả những công việc khác mà bạn thực hiện.
Tới đây ngay bây giờ | Khoảng thời gian lo nghĩ | Đánh dấu | Mức năng lượng | Quan sát
Những khoảng thờì gian lo nghĩ
Khoa học đã chứng minh những người giành ra một khoảng thời gian xác định để suy nghĩ và lo âu sẽ giảm được tới 35 phần trăm sau bốn tuần.
Ví dụ, đặt ra khoảng thời gian lo nghĩ của bạn là từ 4:30 đến 5:00 chiều. Khi đầu óc bạn lại đi sai hướng vào ban ngày, hãy nhắc nhở mình rằng mình đã có một khoảng thời gian riêng cho những suy nghĩ đó rồi. Rồi tạm thời xua tan những suy nghĩ ấy, và tập trung trở lại với công việc trước mắt của mình.
Tận dụng một cách đúng đắn những mức năng lượng của bạn
Bạn cảm thấy uể oải nhất vào lúc nào? Bạn cảm thấy trùng xuống nhất là lúc nào? Hãy học những môn học mà theo bạn là khó vào những lúc bạn thấy khỏe khoắn nhất. Nếu như buổi chiều muộn là lúc bạn uể oải nhất? Hãy học những môn học bạn thấy hứng thú nhất vào lúc đó.
Phần lớn học sinh, sinh viên thường hoãn những môn khó học nhất tới tận chiều muộn, và lúc đó thì khó có thể tập trung đựơc. Hãy đảo ngược lại. Dành khoảng thời gian sung sức nhất của bạn để hoc những môn học khó, những cái dễ để học sau. Chỉ riêng việc làm như vậy cũng đã giúp bạn tập trung hơn.

markdown:
*Pedoman dan strategi untuk Belajar* [Cẩm nang và chiến lược dành cho học tập](../indon/index.htm)
Nghệ thuật hay sự rèn luyện khả năng tập trung
Cho dù bạn đang học môn Sinh học hay đang học bơi, hãy tập trung vào việc bạn đang làm và hạn chế tối đa sự xao nhãng.
Tất cả chúng ta, ai cũng có khả năng tập trung, ít nhất là ở một thời điểm nào đó. Nghĩ đến những lúc mà bạn hoàn toàn bị cuốn vào một việc gì đó mà bạn thực sự say mê: một môn thể thao, chơi nhạc, một trò chơi hay, một bộ phim. Khi đó bạn đang tập trung tối đa đó.
Tuy nhiên lại có những lúc,
Những mẹo nhỏ này có thể giúp bạn: Gồm có
Những gì bạn có thể kiểm soát trong khi học tập
Những cách luyện tập tốt nhất
Bạn phải nhận thấy những tiến bộ sau một vài ngày
Nhưng cũng giống như bất kì một cách luyện tập nào khác, sẽ không tránh khỏi những lúc lên, lúc xuống.
Nó sẽ có lợi cho cả những công việc khác mà bạn thực hiện.
Tới đây ngay bây giờ | Khoảng thời gian lo nghĩ | Đánh dấu | Mức năng lượng | Quan sát
|
|Tới đây ngay bây giờPhương pháp
này nghe tưởng chừng đơn giản nhưng thực ra lại là cách khá
hữu hiệu
Khi bạn nhận thấy rằng những gì bạn đang nghĩ bị phân tán, hãy nói với chính mình:
Rồi nhẹ nhàng kéo sự chú ý của mình về với vấn đề bạn đang suy nghĩ.
Chẳng hạn như:
Quay trở lại với công việc bạn đang làm với những câu hỏi, những bản tóm tắt, những ý chính, sơ đồ và cố gắng tập trung vào công việc đó lâu nhất có thể.
Khi bạn lại cảm thấy mất tập trung, hãy nhắc lại:
" Tới đây ngay bây giờ”
Rồi nhẹ nhàng kéo sự chú ý của mình về với vấn đề bạn đang suy nghĩ.. Hãy cố gắng rèn luyện lặp đi lặp lại. Bạn sẽ đạt được hiệu quả đó!
Đừng cố gắng để xua đuổi ý nghĩ về một cái gì đó. Nếu bạn ngồi đó và nghĩ về bất kì thứ gì bạn muốn nghĩ tới trong vòng ba phút miễn là không phải miếng bánh ngọt. Cố gắng để không nghĩ về miếng bánh ngọt … Một khi bạn cố không nghĩ về một cái gì thì nó sẽ cứ tiếp tục quay trở lại trong đầu bạn.(“ Tôi sẽ không nghĩ về bánh ngọt, không nghĩ về bánh ngọt, không nghĩ về bánh ngọt…”)
Bạn có thể làm việc này cả trăm lần trong một tuần. Và cuối cùng bạn nhận ra rằng, bạn càng ít bị mất tập trung hơn sau mỗi tuần. Vì vậy hãy kiên trì và đừng bỏ cuộc. Bạn sẽ nhận thấy những tiến bộ.
Đừng liên tục đánh giá thành quả của bản thân. Hãy cứ thoải mái thôi. Luyện tập tốt đã là quá đủ để chứng minh rằng bạn đang cố gắng, và rằng bạn đang đi đúng hướng. Sau những lần thành công và thất bại, cuối cùng thì việc luyện tập của bạn sẽ đạt được kết quả.
**Những khoảng thờì gian lo nghĩ**
Khoa học đã chứng minh những người giành ra một khoảng thời gian xác định để suy nghĩ và lo âu sẽ giảm được tới 35 phần trăm sau bốn tuần.
Ví dụ, đặt ra khoảng thời gian lo nghĩ của bạn là từ 4:30 đến 5:00 chiều. Khi đầu óc bạn lại đi sai hướng vào ban ngày, hãy nhắc nhở mình rằng mình đã có một khoảng thời gian riêng cho những suy nghĩ đó rồi. Rồi tạm thời xua tan những suy nghĩ ấy, và tập trung trở lại với công việc trước mắt của mình.
|
|Hãy đánh dấu những khoảng thời gian mà bạn
hay mất tập trung
Lấy một tấm card bỏ túi cỡ 7x10cm. Kẻ hai đường thẳng chia tờ giấy làm ba. Ghi rõ: "sáng", "chiều", "tối".
Nếu bạn mất tập trung vào buổi sáng, hãy đánh một dấu X vào ô dành cho buổi sáng, nếu đó là lúc chiều thì bạn lại đánh một dấu X vào ô dành cho buổi chiêu, làm tương tự nếu bạn thấy mất tập trung vào buổi tối. Hãy giữ mỗi ngày một tấm card như vậy. Dần dần, bạn sẽ thấy số dấu X giảm đi.
**Tận dụng một cách đúng đắn những mức năng lượng của bạn**
Bạn cảm thấy uể oải nhất vào lúc nào? Bạn cảm thấy trùng xuống nhất là lúc nào? Hãy học những môn học mà theo bạn là khó vào những lúc bạn thấy khỏe khoắn nhất. Nếu như buổi chiều muộn là lúc bạn uể oải nhất? Hãy học những môn học bạn thấy hứng thú nhất vào lúc đó.
Phần lớn học sinh, sinh viên thường hoãn những môn khó học nhất tới tận chiều muộn, và lúc đó thì khó có thể tập trung đựơc. Hãy đảo ngược lại. Dành khoảng thời gian sung sức nhất của bạn để hoc những môn học khó, những cái dễ để học sau. Chỉ riêng việc làm như vậy cũng đã giúp bạn tập trung hơn.
|
|Quan sátNhư một bài khởi động
trước khi bắt tay vào công việc, nghĩ tới những lúc mà bạn
thấy dễ dàng để tập trung – bất kể trong điều kiện như thế
nào. Còn bây giờ hãy cố tưởng tượng ra và hướng mình vào
thời điểm đó.
Làm lại động tác đó ngay lập tức trước mỗi lần bạn chuẩn bị học.
Lặp lại sau khi bạn kết thúc một môn học