XHR
以前にも書いたことがあるが、Ajaxというのは紛らわしい言葉で、Ajaxライブラリーというと、Javascriptによる(サーバーとの)非同期通信(Ajax=Asynchronous javascript and XML)という意味と、エフェクトという意味の2つを大きく含んでいる。非同期通信…
YUIも2.8.1。以前に書いたログと同じことを日本語で実装したくて、XHRDataSourceを使って書いたのだがうまくいかない。前にログを書いていたときのYUIのバージョンは2.6だった。仕様は簡単で、以下の初期画面で「カタカナ」で書かれた商品名を入力する。 す…
YUI(先月v3がリリースされましたねぇ。v2も2.8.0rになってます)にはクロスドメインなJavascriptライブラリー「Getツール」があるのだが、GAE/JのURL FetchをつかってProxyとなるプログラムを作成してみた。 Fetchしたのは、YAHOO Web Search API。たとえば…
前々回までのサンプルコードを使って、GAE/Jの認証をカスタマイズする(最終回)。GAE/Jは(今のところ?)認証時に設定できるロール(役割)が 一般ユーザー Admin(管理)ユーザー のいずれかとなっている。コンシューマー向けのサイトを少人数で開発・運…
先のログで、「GAE/Jでセッション・タイムアウトを定義(web.xml)しただけでは、再認証をさせることができない」と書いた。ここのところはちょっと混乱があって、再認証機構はセッション・タイムアウトとは基本的に関係ない。フォーム認証のケース(GAE/Jの…
カスタムログインを作ろうの第3回。目標は、 GAE/Jの認証を使って、ログインする。 ログインしたユーザー(Email)が、アプリケーションで許可した者(アプリケーションでリストを用意)でなければ、認証失敗。 である。 前回は、カスタムログインに使うユ…
前回のログでは、Google App Engine/Java(GAE/J)に配備したCSVファイルから、 Emailアドレス 日本語名 住所 役割(ロール) の情報を取得して、YUI2.7.0のDataTableで表示してみた。今回は、GAE/Jのデータソース(Data Source)のエンティティーとしてこれら…
Google App Engine/Java(GAE/J)の認証が一息ついたところで、以下の仕様で、カスタムログインを作り始めてみようかと思う。 userデータ Email,日本語名(任意),住所(任意),role をData Storeに持たせる。 GAE/Jでの認証後に、Data Storeに存在チェック…
2009/9/20: 追記 TextForwardActionが動かないと思って、見直したら、String.getByteでエンコーディングの指定を忘れていました。ので、それを修正しました。========================================================前回のログでは、YUI2.7のImageLoader…
Javascriptでの禁則処理をエンハンスしたついでに、以前作成したPHPの方のプログラムにも同等の機能を実装しておく。 実装する機能は、 禁止する文字を■に置換するのは格好悪いので、化けそうも無い文字(列)に置換する。 というもの。禁止する文字と、その…
以前、作ったJavascriptでのコンバータ(禁則文字の置き換え目的)だが、あるアプリで使ったついで修正を加えた。この間のプログラムの以下の問題点を改善した。 1.禁則文字が続いた場合、■1つに置換されてしまう。 2.■に置換するのは格好悪いので、化…
漠然としたタイトルだが、要するに「アプリを作ったとき、画面それぞれにヘルプをつけたい」というためのプログラムのこと。先日のログで作成した、(ログインユーザーのロールに応じた)メニュー機能を転用し、以下の仕様とした。 ヘルプの文面はMarkupで記…
先日のログのプログラムを発展させて、 単純なツリー形式にする。 画面にオーバーレイして出現する。 ようにしてみた。 以下は、初期画面のスナップショット。 「Menu」とあるリンクをクリックすると、YUIのAnimを使って、下のようにツリー状のメニューが浮…
YUI2.7.0とPHPを使って、以下のようなシンプルなメニューを作ってみたい。YUIに付属するメニューは、ちょっと好きになれない。 ログインしたユーザーに応じて、メニューの内容を変える。 単純なツリー形式にする。 画面にオーバーレイして出現する。 第1回…
少し前、YUI2.6.0から2.7.0へ移行をした際に、ColorAnimがおかしい、ことに気がついた(このログ)。 その時に気がつかなかったのだが、TreeViewもおかしいみたい。。。以下のようなマークアップからTreeViewを生成した際に、アンカーから生成したノードをク…
ログイン処理をもう少し実用向けにしてみたい。 以前、どこかのサイトで「認証はページに帰属させる」という記事を読んだ記憶がある。認証処理はアクションに帰属させるのが一般的であろうが、Ajaxを前提とした場合、ページに帰属させることで、少なくとも利…
前回(YUI2.7.0+PHP5でログインの処理を作る)の自然の流れとして、Logout処理を作ってみた。Javascriptから、XHRでPHPのプログラムを呼び出して以下の処理を行う。 SESSIONに紐づいているCOOKIEの廃棄 SESSION内に保管してデータの削除 また、これを確認す…
趣向を変えて、YUI2.7.0のPanelを使って、モーダル(modal)表示のログイン画面を作ってみた。ログインは、 E-Mailアドレス パスワード で行うことにし、この情報は、CSV形式でサーバーに置く(以下)。 dummy@dummy.com,password画面の動きは以下のようにす…
2009/5/27 ; 機能追加しました。(こちら)=========================== クライアントサイド(=Javascriptのみ)での禁則処理を書いてみたので、同じ検証をAjax(XMLHttpRequest)を経由してサーバーサイドでの検証の書いてみた。 実際には、こっちを使うこと…
前回の戦略に沿って、コードを書いてみた。サンプルの初期画面は以下。 戦略通りに、テキスト入力フィールドには、グレーで入力ガイドを書いている。 以下のスクリーンショットは、入力途中でバリデーションがかかったところ。 入力して、次の入力フィールド…
地味ーに、バリデーションのコードを書いてきたが、超簡単にフォーム入力&バリデーション(入力検証、入力制限)&サブミットできるとうれしい。コンセプトは、 フォームに(簡単なルールで)inputタグを書くと、自動的にバリデーションがくっついて、サブ…
前回のログのサンプルを改造して、MyValidator.class.phpを使った以下の仕様のサンプルを作った。 入力フィールドと(それに対応する)ボタンを複数個配置する。 ボタンのイベントハンドラを汎用化して、いちいち指定しなくてもいいようにする。 こうすると…
2009/4/22; Javascriptがバグっていたので修正 2009/4/22; Javascriptのコメントを修正 - MyValidator.class.phpを使って、ボタンを押すと特定の入力フィールドを検証するコードを書いてみる。画面の初期イメージは以下。 MyValidatorでは、日付の入力形式…
2009/4/22; Javascriptがバグっていたので修正。 2009/4/22; Javascriptのコメント行を修正。 - 2009/4/21; Javascriptがバグっていたので修正。 - 前回のログで、Javascriptの簡易バリデータ(MyValidator.js)を作成してみた。 クライアントサイドでのバリ…
友人のmezawa氏から、dwr20.dtdの読み込み速度についてご指摘をいただいた。このログでは、DWRのホームページからダウンロードできるdwr.warを元にサンプリングを行ってきたが、dwr.xmlの先頭に記述している では、読み込みに時間がかかるので、
先のログ「DWR: Javaオブジェクトを画面の要素にマップする」で、「(DWRでマップする)Objectの型に合わない入力をすると例外(org.directwebremoting.extend.MarshallException)が発生する」と書いた。この場合、「Error」と書いたAlertボックスがポップ…
DWRでは、サーバーにあるjavaオブジェクト(POJO)と画面要素を透過的にMapすることができる。dwr.warの「Editable Table」がこのサンプルにあたるが、サンプルには完全なコード(java)が付属していない。 コードを補完しようとしたところ、動かずに手こず…
先の「DWR: サーバーからHTMLファイルを取得する」のサンプルで、「日本語のHTMLを差し込むと文字化けする」と書いた。この問題は、ServletContextDemo.java(コードの全文は「DWR: サーバーからHTMLファイルを取得する」を参照)の // WebContext(if)はServ…
前回のログ(「Direct Web Remoting」)に引き続き、dwr.warにあるサンプルをみていく。今回は、非同期に、ウェブ・アプリケーション・サーバー(以下、サーバー)からHTMLファイルを取得するサンプル(dwr.warにある「Resource Forwarding」Example)。少し…
DWRは、サーブレット環境で稼動するAjaxツール。そのサンプリングを始めるにあたり、ようやく辿りついた、との感慨深い。 Ajaxが流行り始めた頃、(残念ながら廃刊になってしまった)「Javaワールド」誌を休暇中の旅先に持っていった。 JavaでAjax(XHR;XMLH…