Struts
IT Open Source JavaEE Application Consulting Struts Open Source JavaWorld Jakarta 4 Jakarta/Apache Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 2
1986 150 CAC OSS Consulting,, Web System Consulting System System http://www.arksystems.co.jp Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 3
Struts Struts Struts2 Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 4
Struts
Struts Bean DTO etc (HTML) JSP etc Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 6
Struts Struts Struts1.3 Struts Struts Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 7
Struts
Struts Apache Jakarta Project Apache Struts Project Struts v1.0 Struts v1.1 Struts v1.2 Struts v1.2.x Source Forge WebWork Project WebWork2 Struts2 Shale Struts v1.3.x Struts v2.0.x Apache Shale Project Shale v1.0.x Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 9
Struts Shale JSF Web TLP Shale Project Struts2 v2.0.x WebWork2 v JavaSE 5.0 Servlet2.4/JSP 2.0 Struts1 v 1.2.x Struts Servlet2.2/JSP1.1 Struts1 v1.3.x Struts Servlet2.3/JSP1.2 Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 10
Struts Struts v1.3 API Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 11
Struts JSP ( ) Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 13
Struts Bean Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 14
Web Bean Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 16
(web.xml WEB-INF/ global-struts-config.xml struts-configs/ page1-config.xml page2-config.xml page3-config.xml Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 17
Bean Struts-Validator Struts-Validator Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 19
Struts-Validator Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 20
Bean
Bean Bean(ActionForm) ( ) Bean(DynaActionForm) POJO Bean Bean Bean(ValidatorForm) Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 22
/ Struts-Validator validate Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 23
UP! Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 25
(1/2) / / ) (Command ) / Event.do MappingDispatchAction JSP Render forward / ) EventDispatch ) /.do JSP EventDispatchAction Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 26
(2/2) EventDispatch forward <forward name= success path= /page1eventbutton1.do /> Command Render forward Command EventDispatch forward Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 27
1 GET/POST jsp response Render EventDispatch Command Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 28
JSP JSP Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 29
<action-mappings> <action path="//page1basemapping" type="sample.page1mappingdispatchaction" name="page1form" scope="request" validate="true" /> <!-- EventDispatch --> <action path="/page1" extends="sample.page1eventdispatchaction" name="page1form" scope="request" validate="false" /> <forward name="unspecified" path="/page1eventinit.do"/> <forward name= button1" path="/page1eventbutton1.do"/> <forward name= button2" path="/page1eventbutton2.do"/> </action> <!-- Render --> <action path="/page1pagerender" extends="//page1basemapping«prefix="$$" forward="/pages/page1.jsp"/> Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 30
<!-- Command --> <action path="/page1eventinit" extends="//page1basemapping" parameter="init" > <forward name="success" path="/page1pagerender.do"/> </action> <action path="/page1eventbutton1" extends="//page1basemapping" parameter="button1" > <forward name="success" path="/menu.do"/> </action> <action path="/page1eventbutton2" extends="//page1basemapping" parameter="button2" > <forward name="error" path="/page1pagerender.do"/> <forward name="success" path="/page2.do"/> </action> </action-mappings> Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 31
EventDispach Bean Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 32
Struts1.3 Chain of Responsibility BaseAction Struts1.3 Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 34
EJB AOP NO! JTA Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 36
JTA JTA JTA Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 37
Struts
Struts ^^) Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 39
Struts2
Struts2(WebWork) MVC Struts1 WebWork ServletFilter Interceptor Struts Servlet API Web Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 41
Struts2 HTPP Dispatcher Filter Dispatcher Filter Interceptor Interceptor Interceptor JSP HTTP Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 42
Struts2 JSP <%@ page contenttype="text/html; charset=utf-8" %> <%@ page pageencoding="windows-31j" %> <%@ taglib uri="/struts-tags" prefix="s" %> <html> <head> <title> </title> </head> <body> <h2> Sturts2 </h2> <s:actionerror /> <s:form theme="simple"> <s:textfield key="username" /><br> <s:password key="password" /> <p> <s:submit value="login" action="top_login" /> <s:submit value="guestlogin" action="top_guestlogin"/> </p> </s:form> </body> </html> Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 43
(OUTCOME) <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="example" namespace="/example" extends="struts-default"> <action name="top" class="example.top"> <result name="success" >/example/top.jsp</result> </action> <action name="top_login" method="login" class="example.top" > <result name="input" >/example/top.jsp</result> </action> </package> </struts> Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 44
POJO public class Top { private String username; private String password; public String getpassword() { return password; } public void setpassword(string password) { this.password = password; } public String getusername() { return username; } public void setusername(string username) { this.username = username; } } public String login() throws Exception { // if( ) { return success ; } return "input"; } Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 45
Struts1 vs Struts2 struts-config.xml Sturts Session/Request Dispatcher Filter struts.xml (XML ) POJO (outcome ) OGNL ( API XML API Copyright(c) yukimitsu kurozumi 2007 All Rights Reserved. 46
Thank You