XHR

jQuery1.4.2; サーバーからhtml(テキスト)を読み込む。

以前にも書いたことがあるが、Ajaxというのは紛らわしい言葉で、Ajaxライブラリーというと、Javascriptによる(サーバーとの)非同期通信(Ajax=Asynchronous javascript and XML)という意味と、エフェクトという意味の2つを大きく含んでいる。非同期通信…

YUI2.8.1で日本語をAutoCompleteする

YUIも2.8.1。以前に書いたログと同じことを日本語で実装したくて、XHRDataSourceを使って書いたのだがうまくいかない。前にログを書いていたときのYUIのバージョンは2.6だった。仕様は簡単で、以下の初期画面で「カタカナ」で書かれた商品名を入力する。 す…

GAE/JのURL FetchでYAHOO! Web Search APIを使う

YUI(先月v3がリリースされましたねぇ。v2も2.8.0rになってます)にはクロスドメインなJavascriptライブラリー「Getツール」があるのだが、GAE/JのURL FetchをつかってProxyとなるプログラムを作成してみた。 Fetchしたのは、YAHOO Web Search API。たとえば…

GAE/Jの認証をカスタマイズする

前々回までのサンプルコードを使って、GAE/Jの認証をカスタマイズする(最終回)。GAE/Jは(今のところ?)認証時に設定できるロール(役割)が 一般ユーザー Admin(管理)ユーザー のいずれかとなっている。コンシューマー向けのサイトを少人数で開発・運…

GAE/Jの認証をタイムアウトさせる

先のログで、「GAE/Jでセッション・タイムアウトを定義(web.xml)しただけでは、再認証をさせることができない」と書いた。ここのところはちょっと混乱があって、再認証機構はセッション・タイムアウトとは基本的に関係ない。フォーム認証のケース(GAE/Jの…

GAE/Jの認証を経た後、YUI2.7.0+Struts1.3をつかってエンティティを表示する

カスタムログインを作ろうの第3回。目標は、 GAE/Jの認証を使って、ログインする。 ログインしたユーザー(Email)が、アプリケーションで許可した者(アプリケーションでリストを用意)でなければ、認証失敗。 である。 前回は、カスタムログインに使うユ…

GAE/JでYUI2.7.0+Struts1.3をつかって、データストアからエンティティを取得してDataTableで表示する

前回のログでは、Google App Engine/Java(GAE/J)に配備したCSVファイルから、 Emailアドレス 日本語名 住所 役割(ロール) の情報を取得して、YUI2.7.0のDataTableで表示してみた。今回は、GAE/Jのデータソース(Data Source)のエンティティーとしてこれら…

GAE/JでYUI2.7.0+Struts1.3をつかってCSVファイルを取得してDataTableで表示する

Google App Engine/Java(GAE/J)の認証が一息ついたところで、以下の仕様で、カスタムログインを作り始めてみようかと思う。 userデータ Email,日本語名(任意),住所(任意),role をData Storeに持たせる。 GAE/Jでの認証後に、Data Storeに存在チェック…

GAE/JでYUI2.7.0+Struts1.3をつかってAjaxでテキストを取得する。

2009/9/20: 追記 TextForwardActionが動かないと思って、見直したら、String.getByteでエンコーディングの指定を忘れていました。ので、それを修正しました。========================================================前回のログでは、YUI2.7のImageLoader…

Javascript+PHP5で禁則処理をする(その2)

Javascriptでの禁則処理をエンハンスしたついでに、以前作成したPHPの方のプログラムにも同等の機能を実装しておく。 実装する機能は、 禁止する文字を■に置換するのは格好悪いので、化けそうも無い文字(列)に置換する。 というもの。禁止する文字と、その…

Javascriptで禁則処理をする(その2)

以前、作ったJavascriptでのコンバータ(禁則文字の置き換え目的)だが、あるアプリで使ったついで修正を加えた。この間のプログラムの以下の問題点を改善した。 1.禁則文字が続いた場合、■1つに置換されてしまう。 2.■に置換するのは格好悪いので、化…

YUI2.7.0+PHP5で画面のヘルプ機能を自作する。

漠然としたタイトルだが、要するに「アプリを作ったとき、画面それぞれにヘルプをつけたい」というためのプログラムのこと。先日のログで作成した、(ログインユーザーのロールに応じた)メニュー機能を転用し、以下の仕様とした。 ヘルプの文面はMarkupで記…

YUI2.7.0+PHP5でメニューを自作する(その2)

先日のログのプログラムを発展させて、 単純なツリー形式にする。 画面にオーバーレイして出現する。 ようにしてみた。 以下は、初期画面のスナップショット。 「Menu」とあるリンクをクリックすると、YUIのAnimを使って、下のようにツリー状のメニューが浮…

YUI2.7.0+PHP5でメニューを自作する(その1)

YUI2.7.0とPHPを使って、以下のようなシンプルなメニューを作ってみたい。YUIに付属するメニューは、ちょっと好きになれない。 ログインしたユーザーに応じて、メニューの内容を変える。 単純なツリー形式にする。 画面にオーバーレイして出現する。 第1回…

YUI2.7.0のTreeViewがおかしい。。。

少し前、YUI2.6.0から2.7.0へ移行をした際に、ColorAnimがおかしい、ことに気がついた(このログ)。 その時に気がつかなかったのだが、TreeViewもおかしいみたい。。。以下のようなマークアップからTreeViewを生成した際に、アンカーから生成したノードをク…

YUI2.7.0+PHP5でモーダル表示のログイン処理を作る(その2)

ログイン処理をもう少し実用向けにしてみたい。 以前、どこかのサイトで「認証はページに帰属させる」という記事を読んだ記憶がある。認証処理はアクションに帰属させるのが一般的であろうが、Ajaxを前提とした場合、ページに帰属させることで、少なくとも利…

YUI2.7.0+PHP5でログアウトの処理を作る。

前回(YUI2.7.0+PHP5でログインの処理を作る)の自然の流れとして、Logout処理を作ってみた。Javascriptから、XHRでPHPのプログラムを呼び出して以下の処理を行う。 SESSIONに紐づいているCOOKIEの廃棄 SESSION内に保管してデータの削除 また、これを確認す…

YUI2.7.0+PHP5でモーダル表示のログイン処理を作る

趣向を変えて、YUI2.7.0のPanelを使って、モーダル(modal)表示のログイン画面を作ってみた。ログインは、 E-Mailアドレス パスワード で行うことにし、この情報は、CSV形式でサーバーに置く(以下)。 dummy@dummy.com,password画面の動きは以下のようにす…

Javascript+PHP5で禁則処理をする

2009/5/27 ; 機能追加しました。(こちら)=========================== クライアントサイド(=Javascriptのみ)での禁則処理を書いてみたので、同じ検証をAjax(XMLHttpRequest)を経由してサーバーサイドでの検証の書いてみた。 実際には、こっちを使うこと…

超簡単にフォーム入力&サブミットしたい;その2

前回の戦略に沿って、コードを書いてみた。サンプルの初期画面は以下。 戦略通りに、テキスト入力フィールドには、グレーで入力ガイドを書いている。 以下のスクリーンショットは、入力途中でバリデーションがかかったところ。 入力して、次の入力フィールド…

超簡単にフォーム入力&サブミットしたい

地味ーに、バリデーションのコードを書いてきたが、超簡単にフォーム入力&バリデーション(入力検証、入力制限)&サブミットできるとうれしい。コンセプトは、 フォームに(簡単なルールで)inputタグを書くと、自動的にバリデーションがくっついて、サブ…

JavaScript+PHP5でつくる簡易バリデータ(入力検証、入力制限);その3

前回のログのサンプルを改造して、MyValidator.class.phpを使った以下の仕様のサンプルを作った。 入力フィールドと(それに対応する)ボタンを複数個配置する。 ボタンのイベントハンドラを汎用化して、いちいち指定しなくてもいいようにする。 こうすると…

JavaScript+PHP5でつくる簡易バリデータ(入力検証、入力制限);その2

2009/4/22; Javascriptがバグっていたので修正 2009/4/22; Javascriptのコメントを修正 - MyValidator.class.phpを使って、ボタンを押すと特定の入力フィールドを検証するコードを書いてみる。画面の初期イメージは以下。 MyValidatorでは、日付の入力形式…

JavaScript+PHP5でつくる簡易バリデータ(入力検証、入力制限)

2009/4/22; Javascriptがバグっていたので修正。 2009/4/22; Javascriptのコメント行を修正。 - 2009/4/21; Javascriptがバグっていたので修正。 - 前回のログで、Javascriptの簡易バリデータ(MyValidator.js)を作成してみた。 クライアントサイドでのバリ…

DWR: dwr20.dtdの読み込み速度について

友人のmezawa氏から、dwr20.dtdの読み込み速度についてご指摘をいただいた。このログでは、DWRのホームページからダウンロードできるdwr.warを元にサンプリングを行ってきたが、dwr.xmlの先頭に記述している では、読み込みに時間がかかるので、

DWR: 例外(Exception)のハンドリング

先のログ「DWR: Javaオブジェクトを画面の要素にマップする」で、「(DWRでマップする)Objectの型に合わない入力をすると例外(org.directwebremoting.extend.MarshallException)が発生する」と書いた。この場合、「Error」と書いたAlertボックスがポップ…

DWR: Javaオブジェクトを画面の要素にマップする。

DWRでは、サーバーにあるjavaオブジェクト(POJO)と画面要素を透過的にMapすることができる。dwr.warの「Editable Table」がこのサンプルにあたるが、サンプルには完全なコード(java)が付属していない。 コードを補完しようとしたところ、動かずに手こず…

DWR: サーバーからHTMLファイルを取得する(その2)。

先の「DWR: サーバーからHTMLファイルを取得する」のサンプルで、「日本語のHTMLを差し込むと文字化けする」と書いた。この問題は、ServletContextDemo.java(コードの全文は「DWR: サーバーからHTMLファイルを取得する」を参照)の // WebContext(if)はServ…

DWR: サーバーからHTMLファイルを取得する。

前回のログ(「Direct Web Remoting」)に引き続き、dwr.warにあるサンプルをみていく。今回は、非同期に、ウェブ・アプリケーション・サーバー(以下、サーバー)からHTMLファイルを取得するサンプル(dwr.warにある「Resource Forwarding」Example)。少し…

Direct Web Remoting

DWRは、サーブレット環境で稼動するAjaxツール。そのサンプリングを始めるにあたり、ようやく辿りついた、との感慨深い。 Ajaxが流行り始めた頃、(残念ながら廃刊になってしまった)「Javaワールド」誌を休暇中の旅先に持っていった。 JavaでAjax(XHR;XMLH…