2009/02/27

JavaのWebアプリのサンプルでWebショッピングサイトの簡易版

とか作ろうと思ったら
意外と難しいので
へこみ中・・・

とても新人研修には使えないなあ
あっはっはっ

だいたい作ったことないし

ち。

何が難しいかと思ったかというと、在庫とか販売管理とかは知らないのは当然として、ショッピングカートの実装。セッション使えばちょちょいのちょいよーとなめてかかっていたら、未経験には高い壁だった。

商品一覧で「カートに追加」としたら、セッションに追加するわけだが、セッションに何を追加するかである。はじめ何も考えずに商品のリストだーとかやっていたら、カートには注文数量があるじゃん、と気づき、注文情報の明細をいれておくことにした。商品の情報は明細にぶっこんだり。

で、明細の数量は変更できる。ユーザーが変更したあと、どこかをまた商品検索の画面に戻るか、注文確認画面へいくのだが、どちらにいくにせよ、画面で入力した値をセッションの明細の数量にいれないといけない。

おおお? どこにサブミットすりゃいいの?

作りたいものは、サーブレット、JSP、JSTLだけどべたなWebアプリのサンプルである。フレームワークは使わない。しかも初心者向けなので解かりやすく。


むり
むりむりむり
もうー激むずじゃーん
初心者むけじゃないじゃーん

htmlの練習ではWebショッピングサイトのしょぼしょぼ版とかやっていたけど、実装するのむずかしいのねん。

カートの考え方自体が、初心者には、はあ?? だよな。

2009/02/25

MyFaces JavaScriptで開いた画面に…

JavaScriptで open.windowでサブウィンドウを開き
その画面が使うマネージドビーンに、t:updateActionListener で
親画面から値を渡す

長い間解けない謎だったのですが
http://wiki.apache.org/myfaces/JavascriptOpenNewWindow
にかいて半分くらい書いてあった

かなりわかりにくいけれど
基本的には、JavaScriptからアクションはよべない
*.jsfは実行できる(そりゃそうだ)
いままでは画面が描画されるとき、getHoge メソッド内で処理していたのだが。

さらっと書いてあるが
JSPには

<h:commandLink actionListener="#{bean.openPopupClicked}" value="open popup" />
こうかいて、
ビーンのほうには、

public void openPopupClicked(ActionEvent event) {
// ここにいろいろかくのよ
}
ということらしい。
何をかくかというと、ビーンのなかに、JavaScriptのコードを書いてしまうのだ
そんなことできるのね。

以下は例。
public void openPopupClicked(ActionEvent event) {
// faces-config.xmlに定義してあるビューのIDだよ
// この値は<f:param>使ってパラメータでもわたせるぜ(<=未確認)
final String viewId = "/popup.faces";

FacesContext facesContext = FacesContext.getCurrentInstance();

// This is the proper way to get the view's url
ViewHandler viewHandler = facesContext.getApplication().getViewHandler();
String actionUrl = viewHandler.getActionURL(facesContext, viewId);

// ここはJavaScriptじゃん!
String javaScriptText = "window.open('"+actionUrl+"', 'popupWindow', 'dependent=yes, menubar=no, toolbar=no');";

// Add the Javascript to the rendered page's header for immediate execution
AddResource addResource = AddResourceFactory.getInstance(facesContext);
addResource.addInlineScriptAtPosition(facesContext, AddResource.HEADER_BEGIN, javaScriptText);
}

すげーなー。。
無理がある気がするが、
こうしておくと、

<h:commandLink actionListener="#{hogebean.openPopupClicked}" value="open popup">
<t:updateActionListener value="#{some.value}"
property="#{hogebean.aaaa}" />
</h:commandLink>
とかやって値をまるごとわたせる。
そんでopenPopupClickedのなかで色々やればいいのだな。
どうしてこんなことができるのか全然さっぱり仕組みを解かっていないが、
まあ、よかった。

2009/02/23

Java教育メモ:変数、if文

 新人が固まるのは、変数とかif文だ。ぶっちゃけ最初のそれらがわからないから、それをずっと引きずって新人研修終わっても何も残っていない人もいる。
 そんな人にそもそもプログラミングをさせるなというまっとうで乱暴な意見もwebのどこかでみたけど、現実は採用はそんなに選べるわけじゃない。文系でプログラミングって何するんですかな人たちに、教えなければならない。彼らがものになるかどうかは彼らしだいで、3年もたてば結果がでる。
 今年は変数やらif文やらについてちょっと考えて資料をつくったりしているのだが、

「信号をわたろうとしていて赤だったら」
とか
「両替ができない自動販売機で千円札しかなかったら」
とか
もう結果が一つしかなさそうなif文を列挙してみたらいいのかしらあ、とか考え中。

javaの基礎。。

明解Java 入門編また、新人研修でJavaを教える予定。予定だけどもう教科書とかチェックしてみたり。去年も一昨年も別の本を使ったけど、今年はこれにしようかな、と明日買って検討してみる。これのすごいところは、演習問題がの答えが載っていないらしい!。別の本にのっているらしい! すばらしいじゃないですか。でも高いなー。びっくりだぜ。この経費削減のあおり。会社にちゃんとかってもらえるかしら。

2009/02/22

書き続ける作家

海街diary 1 蝉時雨のやむ頃海街diary 2 (2) (フラワーコミックス)
吉田秋生の「海街diary」シリーズ2冊
何度も何度も読んでしまう。
ローティーンの切なさから、大人の切なさまで描く




GIMPできゅうー

GIMP 徹底活用ガイド 2009 (インプレスムック エムディエヌ・ムック) スラドツでGIMPの本ないなーと日記をかいたら、通りすがりの親切な匿名さんがこの本を教えてくれた。近所の本屋にはなさそうなのでアマゾンでかうかのうと思っていたら、ヨドバシカメラの本コーナーにあった! 基礎的なことをしらないのでだいぶ勉強になる。

2009/02/19

[勝間本]フレームワークといっても

勝間和代のビジネス頭を創る7つのフレームワーク力 ビジネス思考法の基本と実践
これは読み終わるのに時間がかかった。なかにもかいてあるが、分厚くてその割にはちょっと安いのだ。高いけど。

自己啓発本にありがちなのだけど、読んだときは、おっしやるぞう!、と思っても、すぐ忘れちゃうというか効果が続かないというか。続けるのは自分のチカラなんだけどね。

この本は読んでいる間が楽しくて、その後具体的に何かを始めたかはよくわからないけど、地面をかためるようにためになったというかなんだろう、土台に塗り込んだ気はする。気はするけど、うう、何がどうなのかというと・・・(ループ)

[勝間本]ムック

勝間和代 成功を呼ぶ7つの法則ガチャピンの相方ではない。。。ムックというのはいったいなにかしらと思ってしらべたら造語らしい! そうだったのか。。
で、ムックなので写真とか多くて付録とかついていたのが笑えた。何が印象に残ったかというと小飼 弾さんがなにやらみょーにニコニコ笑顔写真でインタビューにこたえていたやらコメントをだしていたやら。頭のいい人にここまでの笑顔をさせるのは、勝間さんというのはすごいんだろうなあ、と思った。

[勝間本]無理なく続けられるとは思う

無理なく続けられる 年収10倍アップ勉強法 勝間さん本のうち2冊目ぐらいに買った本だ。最近ブルドーザーのごとく怒濤のごとく活躍をする勝間さんであるが、アンチもやはり多いらしい。そりゃあそうだろって感じですが。IT業界ではないのにネットにもお詳しい勝間さん、ネットの怒号もなんのそのってかんじなんだろうなあ。んでこの本、結構前に読んだのであまり覚えていないのだが、なにいってんだいこいつは、って感じはしなかった。筋が通っていた気がした。会計と英語をやろうと思った。思ったとは思う。どちらも断続的にちょびっとずつやっている、とは思う。

h:commandButtonにimage属性が

h:commandButtonにimage属性があった

知らんかった。。。。。。。。。。。


いまさらIE6のradioのonchangeイベント

いまさらだが、IE6のラジオボタン radioのonchangeイベントが怪しいのに気づいた。

onchangeでサブミット、とか入れたのだが、選択を変えても反応しない。
選択を変えたあと、画面のどこかちがうところをクリックすると、びゅんとサブミットする。

ありー?
と、ごっごるさんに聞いてみたら、そんなことがちらほらでてきた。
いやー昔は知っていたのかもしれないけどしらなかった。
だからラジオボタンはonclickに仕込むんだよね。

こんなのはまだかわいいが
IE6のCSSがスカタンなのはいただけない

2009/02/18

GIMPでWeb2.0っぽいボタンとか簡単につくれる最強グラデーション

http://gimp-tutorials.net/130-UltimateWeb20-Gradients-for-Gimp

ダウンロードして、解凍して
なかのファイルを
Windowsの場合どっかにある「gradients」というフォルダにこぴぺして
GIMPを再起動すれば
グラデーションががっつり数が増えている!

四角で選択範囲=>角を丸めたりとか=>グラデーションで適当なのをえらび=>ぴゃっと 上から、下から、真ん中からとかグラデーションをやってみて
適当なのを探す

このフォルダがどこにあるかというと
自分のインストール環境では、
どきゅめんとあんどせってぃんぐ/自分/??/.gimp-2.6 とかの下にあった気がします。

便利だよこれー


ケミとテイ・トウワですが

a Place for Us
発売日ですよ。
ジャケ写はかっこいいのですが、お店でみたら目立たなくて T_T

hmv数寄屋橋店は売り切れていやがった。
「予約のお客様が多かったので」
ってどういうこったい? 予約分しかいれないのか? 予約分に上乗せするのがふつーじゃねえのか?
となりでも注文したやつがはいってねえとかって客がおこっていたけど、店員の応対がもうマニュアル繰り返すだけの最悪なやつで。
うしろでレジを待つ列が長蛇に。

BIG FUN
こっちは買っちゃったけど
もー二度とあの店では買わんぞ

ケミは山野楽器でゲットした
こっちはこっちでおすすめのミュージシャンとか独特でなかなかなか・・

2009/02/17

『星 新一』の本

星新一 一〇〇一話をつくった人
これは発売されたとき何故かすぐに買ってすぐに読んだ。
ものすごくひきこまれてぐいぐい読んでしまう。
星新一の本は実はそんなに読んでいないけど、読んでいない人でもこの本は面白いと思う。

[勝間本]インディペンデントな

勝間和代のインディペンデントな生き方 実践ガイド (ディスカヴァー携書 022)
私がかったのはこっちの本でしたああああ!
いやー、普通に間違えていた。
原点とかいてるけど、原点は『インディでいこう」の方だよねたぶん。
なんで表紙かえちゃったんだろ。
最初のほうが・・・




[勝間本]はじめての勝間本

インディでいこう!
はじめてかった勝間本はこれだと思うのだがなんか表紙が違うなあ。。
なんでAmazonでてこんの? 新書?だったかな。

年収600万とか800万とか目指せって感じの。
経済的に独立できないと自分の人生の舵取りはなかなかむずかしいってことですかねぇ。。
男性は1200万だっけ?
うーん。こういうところだけとりあげて本を紹介するのってもっとも最悪かっ


2009/02/16

夜行列車に君はのったことがあるか

去りゆく星空の夜行列車
あります。
昔毎年のっていました。
夜にがたんごとんと出発し、真夜中時々眼を覚ましてそっと駅を見るのです。
父は確か一番上に寝ていました。
いま思うとすっげええええっと思います。