liguofeng29’s blog

個人勉強用ブログだっす。

Struts2 - タグ分類

struts2のタグ分類。 ・非UIタグ 制御タグ データタグ ・UIタグ formタグ 非formタグ ・Ajaxタグ

Struts2 - Stack Context

<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="" %> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>WELCOME</title> </head> <body> Value Stack:<br> ユーザ名:<s:property value="username"/><br> パスワード:<s:property value="password"/><br> Stack Conte…</s:property></s:property></body></html>

Struts2 - interceptor - 権限チェックを行う

1. interceptorを実装する package interceptor; import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.inte…

Struts2 - interceptor

Struts2では、actionメソッド前後の処理(interceptor)を定義できる。 ・interceptor定義関連要素 <interceptors..> : rootタグ <interceptor..> : interceptor定義 <interceptor-stack..> : interceptorのstack定義 <interceptor-ref..> : interceptor参照 <param..> : interceptorのパラメータ定義 <default-interceptor-ref..> : デフォルトinterceptor ・デフォルトのin</default-interceptor-ref..></param..></interceptor-ref..></interceptor-stack..></interceptor..></interceptors..>…

Struts2 - ajax - jsonプラグイン利用

struts2-json-plugin-xx.xx.xx.jarを使い、ResultのタイプでJSONを使用できる。 sturts.xml 略 <constant name="struts.i18n.encoding" value="UTF-8"/> <package name="example" extends="json-default"> <action name="JSONExample" class="action.JSONExampleAction"> <result type="json"> </result></action></package></constant>

Struts2 - ajax - streamタイプ利用

struts.xml 略・・・ <action name="register" class="action.RegisterAction"> <result type="stream"> <param name="contentType">text/html</param> <param name="inputName">inputStream</param> </result> </action> RegisterAction.java 略・・・ public String execute() throws E…

Struts2 - validation(annotationと手動)

Struts2の検証は、検証ファイル以外にannotationと手動でも実現できる。 annotation利用 setterにannnotationをつける @RequiredStringValidator(key="name.requried") public String getName() { return this.name; } @RequiredStringValidator(message="an…

Struts2 - validation(検証ファイル利用)

Struts2のバリデーション機能を使い、入力値をチェックを行える。 ルール ファイル名 : <Action名>-validation.xml バリデーション失敗後は、input対応のviewを返す actionと同じパス内 サンプル JSP register-input.jsp <%@ page language="java" contentType="text/h</action名>…

Struts2 - 型変換例外処理

Struts2は、conversionErrorインターセプタで型変換例外を処理する。 struts-default.xml 略 <interceptor name="conversionError" class="org.apache.struts2.interceptor.StrutsConversionErrorInterceptor"/> 略 <interceptor-ref name="conversionError"/> 型変換例外処理流れ リクエスト ⇒ 型変換例外 ⇒ inputのview デフォルトメッセージ変更 グローバル リソースファイル xwork.defalut.in…</interceptor-ref></interceptor>

Struts2 - カスタム型変換

struts2は、カスタム型変換を提供している。 リクエストパラメータ「alex,20」 をuser.name=alex,user.age=20のuserオブジェクトへ変換可能。 カスタム型変換実装手順 ・型変化クラス定義 : TypeConverterのIFの実現する。 OGNLプロジェクトでは、TypeConver…

Struts2 - 自動型変換

Struts2は、自動的にリクエストパラメータを適切な型に変換してくれる。 基本型 + 配列 + 集合 boolean,Boolean char,Character int,Integer long,Long float,Float Date Array 集合 : デフォルトではArrayList OGNLに基づく変換 オブジェクト オブジェクト…

Struts2 - 国際化

Struts2を使い、国際化する方法。 【国際化の流れ】 国際化リソース読み込み 自動 : Action範囲、パッケージ範囲はシステムが自動読み込み 手動 : view(JSP)範囲、グローバル範囲は、タグと設定により手動読み込み <s:i18n.../> 国際化出力 Action内では、ActionSupprot#</s:i18n.../>…

Struts2 - Convention(協定) - Action Chain

Action処理後にviewではなく、他のActionへ遷移することをActionChainと言う。 Conventionによる、ActionChainする際にルール 遷移元Actionのview名がない 遷移先Actionは遷移元Actionと同じパッケージ内 遷移先ActionのURLは、firstActionName + resultCode…

Struts2 - Convention(協定)

Struts2.1からConventionプラグインを使い、strtus.xml,Annotionを使わず配置ができる。 【Actionの検索と射影の協定】 Action検索対象のパッケージ action actions struts struts2 パッケージ内容のActionクラス com.opensymphony,xwork2.Action実装 XxxxAc…

Struts2 - 例外処理

struts2のactionの例外処理については、フレームワークに依頼できる。 例外処理のフィルタ struts-default.xml <interceptors> <interceptor name="exception" class="com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor"/> <interceptor-stack name="defaultStack"> <interceptor-ref name="exception"/> </interceptor-stack> </interceptor></interceptors>

Struts2 - Action実装と配置

Actionクラスは、MVCモデルに置いてC(Controller)に該当する。 Actionクラスの実装 POJO(Plane Old Java Object) : なにも継承しないクラス public class LoginAction { // field,setter,gettor public String execute() throws Exception { return "success…

jQuery - 基本 (jQuery対象生成、セレクタ、フィルターなど)

・競合を解消 var j = jQuery.noConflict(); j("#id").html("innerHTML"); ・jQuery対象生成 jQuery(expression[,context]) jQuery(elements) jQuery(html[,document]) jQuery(html,props) jQuery(objects) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title> jQuery対象取得 …</meta></head></html>

jQuery - Callback

jQeury1.7からCallbackの仕組みを提供している Callbacks対象生成 jQeury.Callbacks(flags) flags種類 once : 一回だけfire memory : 前回の引数をキャッシュする unique : 重複する関数なし stopOnFalse : falseを返す関数で実行中止 Callbacksのメソッド a…

jQuery - イベントの発生原(Event Resource)

純粋なjavascriptの場合、異なるブラウザでイベント発生原の取得方法が異なる。 jQeuryは、ブラウザによる取得方法の差異を解消している。 jQeuryのイベント原の属性 data : イベントdata pageX : mouseのX座標 pageY : mouseのY座標 currentTarget : 伝播中…

jQuery - 特定イベントの紐付け

jQeuryは、汎用的にバインドする方法以外に特定のイベント紐付けも提供している。 イベント種類 mouse関連 click(), dbclick(), hover(), mousedown(), mouseenter(), mouseleaver(), mousemove(), mouseout, mouseover(), mouseup(), focusin(), focusout()…

jQuery - イベントの紐付け(binding)

jQueryは、javascriptのイベントバインドを簡略化している。 バインド関連メソッド ready(fn) : ロードされたら呼ばれる関数紐付け 代表的なのが、$(document).ready(fn) : body要素内にonloadがないこと。あればreadyは呼ばれない。 bind(type[,data], fn(e…

jQuery - DOMのnode関連操作

jQueryは、node生成、削除、追加、複製などができる。 DOMのnode操作関連メソッド 生成 $("<a></a>") $("<a></a>", { href: "xxxx.html", target: "_blank", "class": "myClass" }); // 1.8から? $("<div></div>", { width: 100, height: 100, css: {border: "5px solid gray"}, addC…

jQuery - DOMのコンテンツ操作

DOMのコンテンツには主にinnetHTML、テキスト、value属性など。 jQueryオブジェクトのメソッド innetText html() html(val) テキスト text() text(val) formの要素 val() val(val) val(Array) - 複数選択select,checkboxなど <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title> jQueryのコンテンツ操作 </title> </meta></head></html>

jQuery - DOMのCSS操作

jQueryを通してDOMのCSSを操作できる。 class関連 addClass(class) hasClass(class) removeClass(class) toggleClass(class) : classがあれば追加、なければ削除!! css関連 css(name) : 取得 css(name, value) : 単一設定 css(properties) : 複数設定 位置…

jQuery - DOM属性関連操作

jQueryを通してDOMの属性の取得、追加、削除の操作が可能。 取得 attr(name) prop(propName) 追加 attr(name, value) attr(map) attr(key, fn) prop(properties) prop(name, value) prop(key, fn) 削除 removeAttr(name) removeProp(name) ※attrとpropの違い…

jQuery - データ保存関連

jQuery対象にname-value形式で一時データ保存先として保存、取得ができる。 jQueryオブジェクトのメソッド ・保存 data(name, value) data(obj) : ({name1:value1, name2:value2})形式 ・取得 data() ・削除 removeData([name]) removeData([list]) jQuery名…

jQuery - 名前空間のメソッド

jQuery.メソッド()を色々提供している。 一部メソッド jQuery.support : javascript対象取得し、属性値でブラウザ情報など取得 ajax boxModel など jQuery.error(string) : Errorを投げる jQuery.globalEval(code) : codeを実行する jQuery.isArray(object) …

jQuery - 拡張

jQuery.fn.extend(object) : jQueryオブジェクトに対して拡張を行う。 jQuery.extend(object) : jQuery名前空間に対して拡張を行う。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>jQuery </title> </head> <body> 赤<input name="color" type="checkbox" value="red" /> 青</body></html>

jQuery - jQuery.promise([queue][,target])

jQuery1.5からすべてのjQueryオブジェクトにpromise()が追加されている。jQueryオブジェクトのアニメキューの進捗を監視し、doneCallback,failCallbakを設定できる。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title> promise </title> <style type="text/css"> div { height: 50px; width: 50px; float: left; …</meta></head></html>

jQuery - Deferredオブジェクト

Deferredオブジェクトは、時間がかかる処理の進行状態に応じてcallback関数を設定できるために用意されている。 生成 jQeury.Deferred() Deferredメソッド done(doneCallback) : 成功時 fail(failCallback) : 失敗時 progress(callback) : 進行中 always(don…

jQuery - Ajax関連 (jQuery.get(), jQuery.post())

jQueryは簡易的な方法で非同期通信のget,postを送信できる。 GET jQuery.get(url[,data][,callback][,type]) type : xml, json, script, text, html jQuery.getJSON(url[,data][,callback]) - type = json jQuery.getScript(url[,data][,callback]) - type =…

jQuery - Ajax関連 (serialize, load)

・ jQuery.param(obj) - objをリクエストパラメータに変換 ・ serialize() - jQueryオブジェクトが含むフォームの要素をリクエストパラメータに変換 ・ serializeArray() - jQueryオブジェクトが含むフォームの要素を配列に変換 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title> jQuery-serialize </title> </head> <body> </body></html>

Ajax - レスポンス処理

XMLHttpRequestがレスポンスを処理するための属性は responseText responseXML JSONレスポンスを処理するサンプル <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>XMLリクエスト送信</title> <style type="text/css"> select { width: 120px; font-size: 11pt; } </style> </head> <body> </body></html>

Ajax概要

Ajaxは、非同期通信を行うための仕組みであり、オブジェクトXMLHttpRequestを使い実現する。 Ajax全称 Asynchronous Javascript And XML XMLHttpRequestのメソッド abort() : リクエスト中止 getAllResponseHeaders() : ヘッダ取得 getResponseHeader("key")…

テトリスサンプル

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>テトリス</title> <script type="text/javascript" src="tetris.js"> </script> <style type="text/css"> body>div { font-size:13pt; padding-bottom: 8px; } span { font-family: tmb; font-size:20pt; color: …</meta></head></html>

WebSocket - 簡易複数チャットサンプル

サーバ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.net.SocketException; import java.security.MessageDigest; import java.util.ArrayLi…

WebSocket概要

WebSocketは、javascriptを通してサーバと接続を行い継続的に通信(ソケット通信)を行えようにするための仕組みである。 WebSocketのメソッド send() : データ送信 close() : 通信切断 WebSocketのリスナー onopen : 接続確立時 onerror : エラー時 onclose :…

postMessageとonmessage

二つのwindowのHTML間でデータのやり取りを行うために用意されているAPI。 ・targetWIndow.postMessage(message, targetOrigin) ・onmessage <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title> 選択本表示 </title> <script type="text/javascript"> var chooseBook = function() { // window表示 v…</meta></head></html>

Worker - javascript内のサブスレッド

Workerは、javascript内でサブスレッドを使用し、サブスレッドとデータのやり取りが行える。 ※サブスレッドではDOM操作はできない。 ・サブスレッドで素数を取得するサンプル <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=SJIS" /> <title> Worker</title> </head> <body> <p>素数 <div id="result"></div> </p> <script> // Worker生成(別スレッドになる) var …</body></html>

HTML5 - オフラインwebアプルサンプル

オフライン機能を持つwebappを作成してみる。 ・オフライン機能を持つindex.html、online.js、offline.jsを作成する index.html <html manifest="index.manifest"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title> topページ </title> <script type="text/javascript" src="online.js"> </script> </head> …</html>

HTML5 - Web Storage

WebStorageはwebアプリのデータをクライアントで保存できる仕組み。 cookieの場合以下のデメリットがある サイズは4KB HTTPリクエスト中に毎回送信される セキュリティに問題 Storageの実装 Session Storage : セッション有効中に保存される Local Storage :…

javascript - イベントバインド

バインドサンプル <input type="button" value="ボタン1" onclick="sampleFun1()" /> <script type="text/javascript"> function sampleFun1() { alert("sampelFun1"); } </script> <input type="button" id="btn2" value="ボタン2"/> <script type="text/javascript"> function sampleFun2() { a…

javascript - DHTML(geoloaction属性、google map表示)

navigatorのgeolocation属性は、HTML5からブラウザの位置を取得できる。 Geolocationのメソッド getCurrentPosition(onSuccess, onError, options) int watchCurrentPosition(onSuccess, onError, options) clearWatch(watchId) Callback関数function(positi…

javascript - DHTML(documentオブジェクト、cookie使用)

javascript内のdocumentは、HTMLDocumentでもあり、DHTMLのオブジェクトでもある。 DHTMLのdocumentのメソッド close() open() write() writeln() DHTMLのdocumentの属性 all anchors applets cookie documentElement forms frames images lastModified link…

javascript - DHTML(screen属性、navigator属性)

windowのscreen属性は、Screenオブジェクトであり、ディスプレイを表す。 属性値取得 <script type="text/javascript"> alert(window.screen); var str = "screen属性:\n"; for(var propname in window.screen) { str += propname + ": " + window.screen[propname] + "\n" } alert(str); </script> w…

javascript - DHTML(location属性、history属性)

windowのhistory属性は、Historyオブジェクトである。 メソッド back() foward() go(intValue) windowのlocation属性は、Locationオブジェクトである。 属性 hostname href host port pathname protocal <script type="text/javascript"> var loc = window.location; var locStr = "現在loca…

javascript - DHTML(windowオブジェクト)

windowオブジェクト <script type="text/javascript"> // グローバル変数定義時は、windowsの属性として存在する var a = 5; document.write(window.a === a); window.book = "windowのbook属性"; document.write("<br>" + book); </script> ※ 複数のframeがある場合には、複数のwindowがあるので、グ…

javascript - DHTML概要

DHTMLは、DOM(Document Object Model)前の動的にHTMLを変更する技術である。 DHTMLのモデル関連 window : javascriptのトップオブジェクト。 navigator : ブラウザ frames location : ページURL hisotry : 履歴 document : HTML all body forms anchors link…

javascript - HTML要素削除

HTML要素削除 メソッド removeChild(oldNode) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=SJIS" /> <title> removeChild </title> </head> <body id="test"> <input id="add" type="button" value="div追加" disabled onclick="add();" /> </body></html>

javascript - HTML要素追加

HTML要素を追加する手順 1 node生成 OR node複製 document.createElement(Tag) <script type="text/javascript"> // divタグ生成 var div1 = document.createElement("div"); </script> Node colneNode(boolean deep) deep : 対象node以降をクローンするか <script type="text/javascript"> // IDで要素取得 var ul = document.getEle…