サブプロジェクト 07.8.10 (C) Yoichiro Tanaka. All rights reserved. Databinder Wicket Support module for NetBeans IDE wicket-auth-roles Pax Wicket Service wicket-spring fvalidate-integration wicketstuff-dojo wicketstuff-animator wicketstuff-scriptaculous Swarm wicket-contrib-javaee wicket-groovy wicket-portlets wicket-contrib-gmap(2)
サブプロジェクト 07.8.10 (C) Yoichiro Tanaka. All rights reserved. Databinder Wicket Support module for NetBeans IDE wicket-auth-roles Pax Wicket Service wicket-spring fvalidate-integration wicketstuff-dojo wicketstuff-animator wicketstuff-scriptaculous Swarm wicket-contrib-javaee wicket-groovy wicket-portlets wicket-contrib-gmap(2)
wicket-spring
コンポーネントに Spring 管理オブジェクトを DI
@SpringBean アノテーションを利用
07.8.10 (C) Yoichiro Tanaka. All rights reserved. class EmployeePage extends WebPage { @SpringBean(name=“employeeDao”) private EmployeeDao dao; @SpringBean private DivisionDao divisionDao; } employeeDao divisionDao ApplicationContext
wicket-auth-roles
Wicket に認証・認可機構を追加
Acegi との連携も可能
07.8.10 (C) Yoichiro Tanaka. All rights reserved.
wicket-auth-roles 07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class YourAppSession extends AuthenticatedWebSession { public boolean authenticate(String username, String password) { // 認証処理 } public YourAppUserDetails getUser() { // ユーザ情報取得処理 } public Roles getRoles() { // ロール情報取得処理 } public void signout() { // ログアウト処理 } }
wicket-auth-roles 07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class YourAppApplication extends AuthenticatedWebApplication { private AuthenticationManager authenticationManager; protected void init() { super.init(); getSecuritySettings().setAuthorizationStrategy( new MetaDataRoleAuthorizationStrategy(this)); // MetaDataRoleAuthorizationStrategy.authorize( EditPage.class, SecurityConstants.ROLE_EDITOR); MetaDataRoleAuthorizationStrategy.authorize( ManagerPage.class, SecurityConstants.ROLE_MANAGER); } }
wicketstuff-dojo
Wicket で Dojo を使うためのライブラリ
07.8.10 (C) Yoichiro Tanaka. All rights reserved.
wicketstuff-dojo 07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class FloatingPaneShower extends WicketExamplePage { public FloatingPaneShower(PageParameters parameters){ DojoFloatingPane pane1 = new DojoFloatingPane( "pane1"); add(pane1); DojoFloatingPane pane2 = new DojoFloatingPane("pane2"); pane1.add(pane2); pane1.setDisplayCloseAction(false); pane1.setHeight("300px"); pane1.setWidth("300px"); pane2.setTitle("a title here"); } }
wicketstuff-dojo 07.8.10 (C) Yoichiro Tanaka. All rights reserved. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <body> <wicket:extend> <div wicket:id="pane1"> content of my floatingPane <b>Could be html</b> <div wicket:id="pane2">A window in an other window</div> </div> </wicket:extend> </body> </html>
wicket-groovy
Wicket アプリケーションを Groovy で記述
Builder を使って,記述を簡潔にできる
07.8.10 (C) Yoichiro Tanaka. All rights reserved.
wicket-groovy
Java の場合
07.8.10 (C) Yoichiro Tanaka. All rights reserved. Form form = new Form("contactForm"){ protected void onSubmit () { try { ((Contact)getModel().getModelObject()).save(); } catch(SomeCrazyException e) { throw new RuntimeException("I don't know what to do with this. Just fail.", e); } } }; form.add(new RequiredTextField("firstname"); form.add(new RequiredTextField("lastname").add(StringValidator.maximumLength(32)); add(form);
wicket-groovy
Groovy の場合
07.8.10 (C) Yoichiro Tanaka. All rights reserved. WicketBuilder builder = new WicketBuilder(this) builder. form ("contactForm", model:new CompoundPropertyModel(contact), onSubmit :{ model.modelObject.save() }) { requiredTextField("firstname") requiredTextField("lastname") {add(StringValidator.maximumLength(32))} }
wicket-contrib-javaee
アノテーションにより JavaEE リソースを利用
@EJB
@PersistenceUnit
@Resource
07.8.10 (C) Yoichiro Tanaka. All rights reserved.
wicket-contrib-javaee
@EJB
07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class ListContacts extends WebPage { @EJB(name="ejb/contacts") private ContactService contactService; public ListContacts() { List<Contact> contacts = contactService.getContacts(); //....
0 comments
Post a comment