Not sure where to start? Get going with our crush course for beginners and create your first project.
The Apache Wicket project is proud to announce the first maintenance release: Apache Wicket 1.4.1. The most notable change in this release is the transparent support for multipart form submissions via Ajax. Wicket is now smart enough to submit a form using a hidden iframe rather then the standard XMLHttpRequest if the form contains file upload fields. You can download the release here: http://www.
Yieldkit enables publishers and advertisers to easily implement their performance marketing strategies to generate higher revenue and more traffic with less effort and greatest possible safety. We close the gap between content and commerce. Our platform is built around turnkey solutions, machine learning for contextual and semantic targeting and APIs. Performance needs safety. That’s why Yieldkit
The Apache Wicket project is proud to announce the release of Apache Wicket 1.4. Apache Wicket is an open source, component oriented Java web application framework. With overwhelming support from the user community, this release marks a departure from the past where we leave Java 1.4 behind and we require Java 5 as the minimum JDK version. By moving to Java 5 as the required minimum platform, we w
3ヶ月間ほど社内案件でWicket(1.3.6)を使用していたので、今後案件で使用される方の参考になればと思い、Wicketを使用してみた際の感想を記載しておきます。ただし、その場しのぎで対応している部分も多々あるため参考程度としてください。 # 実案件で使用させてる方ってどのくらいいるんだろう? ■学習コスト 約1ヶ月ほどかかりました。UIとして表現したいパターンを洗い出してプロトタイプを兼ねながら作成していました。 ■ログイン wicket-auto-roleを使用しました。今回は複雑なユーザ管理は必要ないんで特に問題なかったかな?サインインパネルとしてorg.apache.wicket.authentication.panel.SignInPanelを使用しようと思いましたが、WICKET-2103のとおり問題があるため、流用しながらonSignInSucceededメソッドをカス
TextFieldやTextArea用のPlace Holder(入力がない場合はグレーの文字でヒントが出るやつ)のIBehaviorを書いてみました。 書いた、といってもSimpleAttributeModifierと大して変わらないですが。 jQueryとjQuery.placeholderをこのIBehaviorと同じpackageにおいて使ってください。 使い方は至って単純。 Place Holderを適応したいコンポーネントにPlaceHolderBehaviorをaddしてください。 this.add(new TextField<String>("mailAddress").add(new PlaceHolderBehavior(new Model<String>("メールアドレス")))); こんな感じです。 package net.nagaseyasuhito.sandbo
2009-07-27追記SDKのバージョンに合わせてバージョンが変わってますので更新のエントリも参照する事! 久々にWicketを触っていると、"やっぱJava屋にはWicketが一番気持ちいいな…"となったので、前回のものに加えてWicket+GAE用のquickstartも作った。 使い方 maven2がインストールされてパスも通った状態で、以下のコマンドを実行してください。 $ mvn archetype:generate -DarchetypeGroupId=com.shin1ogawa -DarchetypeArtifactId=gae-wicket-quickstart -DarchetypeVersion=1.0-SNAPSHOT -DarchetypeRepository=http://gae-j-samples.sourceforge.jp/maven/repositor
対DoS攻撃用のIRequestCycleを書きました。 あるIPアドレスから同じURLへ一定期間(expire)に閾値(threshold)以上のアクセスがあるとDosAttackExceptionをぶん投げます。 こういったものはServletFilterで書くのも手ですが、そうするとWicketTesterでテストをするのが手間になってしまうため、IRequestCycleのonBeginRequest()とonEndRequest()で書いています。 JPAのTransaction管理もServletFilterではなくIRequestCycle内で完結させることでTransactionがcommitできなかった場合はIRequestCycle.onRuntimeException(Page page, RuntimeException e)呼べるので便利。 これはまた別の機会に詳
DoCoMoのiモードIDを取得する場合URLにguid=onという文字列を含める必要があります。 簡単サインインの際はformのactionに加えるのですが、Wicketの場合は以下のように書きます。 Form<SignInPage> signInForm = new StatelessForm<SignInPage>("signInForm") { private static final long serialVersionUID = 1L; @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); String action = tag.getAttributes().getString("action"); if (action.contains("?")) { t
auの端末はinputタグのtypeがcheckboxの場合にvalueを指定しないとデフォルトで0が送信されます。 Wicketはこれをfalseとして解釈してしまうので、明示的に値を設定するListenerを書きました。 package net.nagaseyasuhito.sandbox.listener; import org.apache.wicket.Component; import org.apache.wicket.application.IComponentInstantiationListener; import org.apache.wicket.behavior.SimpleAttributeModifier; import org.apache.wicket.markup.html.form.CheckBox; public class CheckBoxValu
AuthenticatedWebSession.isSignedIn()がfinalなお陰でoverrideできず若干トリッキーな実装になっています。 が、やってる事は普通のservletでcookieを扱うのと変わりありません。 AuthenticatedWebSession.signIn(String username, String password)の代わりに、SandboxSession.signIn(String username, String password, boolean rememberSignIn)を定義しているので、サインインの際はこのメソッドを呼び出すようにします。 Wicketで認証が必要なページにアクセスするとAuthenticatedWebSession#getRoles()が呼ばれるので、このメソッド内でcookieのチェックをし、該当するUserがあ
Wicketは文字列を実体参照としてhtmlに出力してしまうので、それを抑制するためにComponent.setEscapeModelStrings(boolean escapeMarkup)を片っ端から呼び出すListenerを書きました。 package net.nagaseyasuhito.sandbox.listener; import org.apache.wicket.Component; import org.apache.wicket.application.IComponentInstantiationListener; public class EscapeModelStringsModifier implements IComponentInstantiationListener { private boolean modify; public EscapeModel
国際化に対応するためプロパティファイルを参照するConverterを書いてます。 package net.nagaseyasuhito.sandbox.converter; import java.util.Locale; import org.apache.wicket.Application; import org.apache.wicket.Component; import org.apache.wicket.util.convert.converters.AbstractConverter; public class EnumerationConverter extends AbstractConverter { private static final long serialVersionUID = 1L; private Class<? extends Enum<?>> cl
昨日のエントリがあまりにも「動かすだけ」だったので、もうちょっとまともなアプローチを模索してみました。ポイントは Maven2 に GAE/J SDK 関連の依存性を追加 ロガーは java.util.logger を使いましょう ローカルで動かそう デプロイしよう Wicket のプログラム自体は昨日と同じです。将来的に GAE/J で JDO を使用することを睨んでいます。 Maven2 に GAE/J SDK 関連の依存性を追加 Wicket 使いの方の中には Maven を使っている方が多いんじゃないかという思い込みのある私です。私も Maven 愛好者です。ということで、GAE/J に関するパッケージも Maven 管理したいわけです。セントラルリポジトリに該当のパッケージは登録されていないのですが Maven Archetype for GAE/J project で参照してい
ミッションは、Wicket の QuickStart で作成した Maven プロジェクトにできるだけ手を加えることなく Google App Engine で動かすことです。 修正または作成しなければならない点は以下の 2 つです。 セッションストアを変更する。 appengine-web.xml を作成する。 なお、この記事の内容は Wicket 1.4-rc4 で試しました。 セッションストアを変更する Wicket では、デフォルトでは org.apache.wicket.protocol.http.SecondLevelCacheSessionStore というのを通してセッションをディスクに保存するようなことをやっています。Google App Engine ではファイル I/O は認められていませんので、このままではエラーになってしまいます。 これを変更するには Wicket
Wicketとの出会い 僕は会社の製品リニューアルを担当することになりました。 とはいえ、現行製品自体はちゃんと使えますし、何一つ問題らしいものが見えません。 もう少しカスタマイズがしやすいといいのかなぁと言うくらいで、あまり不満らしい不満はありませんでした。 そんな中、昨年5月頃、Wicketを知りました。 どうも、今までと全く違う開発手法になるなという印象でした。 そのときまでは、JavaはRuby on Railsに比べて生産性が低いと思っていたので、 Rubyを勉強して会社に広めようと思っていました。 しかし、Wicketのことを知ると、「Ruby on Railsは、結局Strutsの延長なんだな。」と思うようになりました。Wicketを使うとデスクトップアプリのように開発できるし、HTMLをビューのテンプレートに使えるので、これは生産性の向上に直結する確信が持てました。 8月ご
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く