`
fly1206
  • 浏览: 56938 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

日系框架之seasar2(S2Struts)---(中)

阅读更多

 j2ee.dicon

<?xmlversion="1.0"encoding="Shift_JIS"?>
<!DOCTYPEcomponentsPUBLIC"-//SEASAR//DTDS2Container//EN"
"http://www.seasar.org/dtd/components.dtd">
<componentsnamespace="j2ee">
  <componentname="transactionManager"
    class="org.seasar.extension.jta.TransactionManagerImpl"/>
  <componentname="requiredTx"
    class="org.seasar.extension.tx.RequiredInterceptor"/>
  <componentname="requiresNewTx"
    class="org.seasar.extension.tx.RequiresNewInterceptor"/>
  <componentname="mandatoryTx"
    class="org.seasar.extension.tx.MandatoryInterceptor"/>
  <componentname="notSupportedTx"
    class="org.seasar.extension.tx.NotSupportedInterceptor"/>
  <componentclass="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
  <componentclass="org.seasar.extension.jdbc.impl.BasicStatementFactory"/>
  <!--
  <componentclass="org.seasar.extension.jdbc.impl.OracleResultSetFactory"/>
  <componentclass="org.seasar.extension.jdbc.impl.BooleanToIntStatementFactory"/>
  -->
  <!--
  <componentname="xaDataSource"
    class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
    <propertyname="driverClassName">
      "oracle.jdbc.driver.OracleDriver"
    </property>
    <propertyname="URL">
      "jdbc:oracle:thin:@xxx:xxx:xxx"
    </property>
    <propertyname="user">"xxx"</property>
    <propertyname="password">"xxx"</property>
  </component>
  <componentname="xaDataSource"
    class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
    <propertyname="driverClassName">
      "org.postgresql.Driver"
    </property>
    <propertyname="URL">
     "jdbc:postgresql://localhost/TEST"
    </property>
    <propertyname="user">"xxxx"</property>
    <propertyname="password">"xxxx"</property>
  </component>
  <componentname="xaDataSource"
    class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
    <propertyname="driverClassName">
      "net.sourceforge.jtds.jdbc.Driver"
    </property>
    <propertyname="URL">
      "jdbc:jtds:sqlserver://localhost/TEST;instance=SQLEXPRESS"
    </property>
    <propertyname="user">"xxxx"</property>
    <propertyname="password">"xxxx"</property>
  </component>
  -->
  <componentname="xaDataSource"
    class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
    <propertyname="driverClassName">
      "org.hsqldb.jdbcDriver"
    </property>
    <propertyname="URL">
      "jdbc:hsqldb:hsql://localhost:9001"
    </property>
    <propertyname="user">"sa"</property>
    <propertyname="password">""</property>
  </component>
  <componentname="connectionPool"
    class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
    <propertyname="timeout">600</property>
    <propertyname="maxPoolSize">10</property>
    <!--JTAトランザクションが開始されていない場合にコネクションを
      取得できないようにするには次のプロパティをfalseにしてください.-->
    <propertyname="allowLocalTx">true</property>
    <destroyMethodname="close"/>
  </component>
  <componentname="dataSource"
    class="org.seasar.extension.dbcp.impl.DataSourceImpl"/>
  <!--WebLogic
  <componentname="initialContext"class="javax.naming.InitialContext"/>
  <componentname="transactionManager"
    class="org.seasar.extension.j2ee.JndiTransactionManager">
    <arg>initialContext</arg>
    <arg>"javax.transaction.TransactionManager"</arg>
  </component>
  <component
    class="org.seasar.extension.j2ee.JndiDataSource">
    <arg>initialContext</arg>
    <arg>"jndiName"</arg>
  </component>
  -->
  <!--WebSphere4
  <componentname="initialContext"class="javax.naming.InitialContext"/>
  <componentname="transactionManager"
    class="org.seasar.extension.j2ee.SingletonTransactionManager">
    <arg>"com.ibm.ejs.jts.jta.JTSXA"</arg>
    <arg>"getTransactionManager"</arg>
  </component>
  <component
    class="org.seasar.extension.j2ee.JndiDataSource">
    <arg>initialContext</arg>
    <arg>"jndiName"</arg>
  </component>
  -->
  <!--WebSphere5
  <componentname="initialContext"class="javax.naming.InitialContext"/>
  <componentname="transactionManager"
    class="org.seasar.extension.j2ee.SingletonTransactionManager">
    <arg>"com.ibm.ejs.jts.jta.TransactionManagerFactory"</arg>
    <arg>"getTransactionManager"</arg>
  </component>
  <component
    class="org.seasar.extension.j2ee.JndiDataSource">
    <arg>initialContext</arg>
    <arg>"jndiName"</arg>
  </component>
  -->
  <!--JBoss
  <componentname="initialContext"class="javax.naming.InitialContext"/>
  <componentname="transactionManager"
    class="org.seasar.extension.j2ee.JndiTransactionManager">
    <arg>initialContext</arg>
    <arg>"java:/TransactionManager"</arg>
  </component>
  <component
    class="org.seasar.extension.j2ee.JndiDataSource">
    <arg>initialContext</arg>
    <arg>"jndiName"</arg>
  </component>
  -->
  <!--Oracle10gAS
  <componentname="initialContext"class="javax.naming.InitialContext"/>
  <componentname="transactionManager"
    class="org.seasar.extension.j2ee.JndiTransactionManager">
    <arg>initialContext</arg>
    <arg>"java:comp/UserTransaction"</arg>
  </component>
  <component
    class="org.seasar.extension.j2ee.JndiDataSource">
    <arg>initialContext</arg>
    <arg>"jndiName"</arg>
  </component>
  -->
</components>

 

 

log4j.properties

#log4j.category.org.apache.struts=DEBUG,C
log4j.category.org.apache.commons.validator=ERROR
log4j.category.org.seasar=DEBUG,C
log4j.additivity.org.seasar=false
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.out
log4j.appender.C.ImmediateFlush=true
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%-5p%d[%t]%m%n
log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d[%t]%-5p%c-%m%n

  global.css

body{
  padding:0;
  background:#FFFFFF;
}
td,th{
 font-size:small;
}
.title{
 font-size:large; 
 font-weight:bold;
 color:#5671A0;
}
.small{
 font-size:70%;
 color:white;
}
.smalla,smalla:visited{
 color:white;
}
.smalltitle{
 font-size:small;
 font-weight:bold;
 color:#5671A0;
}
.toolbar{
 padding:4px; 
 background-color:#7694C8;
}
.tablebg{
 background-color:#EEF3FB;
}
.oddRow,.row-1{
 background-color:#FFFFFF;
}
.evenRow,.row-0{
 background-color:#EEF3FB;
}
.left{
 text-align:left;
}
.right{
 text-align:right;
}
.box{
 border:thinsolid#7694C8;
}
.label{
 background-color:#ffffcc;
}
.display{
 display:inline;
}
.notdisplay{
 display:none;
}
.level0{
}
.level1{
}
.body{
  margin-left:188px;
}
.header{
  padding:4px;
}
.menu{
  background:#FC0;
  padding:0;
  position:absolute;
  width:120px;
  top:145px;
}
.text{
 text-align:left;
}
.number{
 text-align:right;
}
.date{
 text-align:left;
}
.error{
 background-color:red;
}
.text-error{
 background-color:red;
 text-align:left;
}
.number-error{
 background-color:red;
 text-align:right;
}
.date-error{
 background-color:red;
 text-align:left;
}

 

execute.js

//
//
//
functiongo(inputTag,action){
  if(action!=null){
    inputTag.form.action=inputTag.form.action.replace(//[^/]*$/,action);
  }
  inputTag.form.method.value=inputTag.name;
}

  layout.html

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<html>
<head>
 <metahttp-equiv="Content-Type"content="text/html;charset=Windows-31j">
 <linkhref="../../css/global.css"rel="stylesheet"type="text/css"id="globalStyle"></link>
 <scripttype="text/javascript"src="../../js/execute.js"id="executeJs"></script>
 <titleid="pageTitle">
  S2StrutsSample
 </title>
</head>
<body>
<tableborder="0"cellspacing="5"width="97%">
<tr>
 <tdcolspan="2">
  <divid="header">
   <imgsrc="../../images/seasar.gif">
  </div>
 </td>
</tr>
<tr>
 <tdwidth="200"valign="top">
  <divid="navigation">
   <ul>
    <li><ahref="http://j5c.ddvip.com/index.php#">MENU1</a></li>
    <li><ahref="http://j5c.ddvip.com/index.php#">MENU2</a></li>
    <li><ahref="http://j5c.ddvip.com/index.php#">MENU3</a></li>
   </ul>
  </div>
 </td>
 <tdvalign="top"align="left">
  <divid="layoutBody">
   DUMMY
  </div>
 </td>
</tr>
<tr>
 <tdcolspan="2">
  <hr/>
 </td>
</tr>
<tr>
 <tdcolspan="2">
  <divid="footer">
   TheSeasarProject
  </div>
 </td>
</tr>
</table>
</body>
</html>

 

 

 layout.mayaa

<?xmlversion="1.0"encoding="Shift_JIS"?>
<m:mayaaxmlns:m="http://mayaa.seasar.org"
    xmlns:html="http://struts.apache.org/tags-html">
  <m:echoid="globalStyle">
    <m:attributename="href"value="${contextPath}/css/global.css"/>
  </m:echo>
  <m:echoid="executeJs">
    <m:attributename="src"value="${contextPath}/js/execute.js"/>
  </m:echo>
  <m:insertid="pageTitle"name="title"replace="false"/>
  <m:insertid="layoutBody"name="content"replace="false"/>
  <m:insertid="navigation"replace="false"
      path="/pages/layout/menu.html"name="menu"/>
  <html:imgm:id="header"page="/images/seasar.gif"m:replace="false"/>
  <!--ignoredids-->
  <m:ignoreid="footer"/>
</m:mayaa>

  menu.html

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<html>
<head>
 <metahttp-equiv="Content-Type"content="text/html;charset=Windows-31j">
 <linkhref="../../css/global.css"rel="stylesheet"type="text/css"></link>
 <scripttype="text/javascript"src="../../js/execute.js"></script>
 <title>
  S2StrutsSampleMenu
 </title>
</head>
<body>
<divid="menuBody">
<ul>
<li><ahref="http://j5c.ddvip.com/index.php#"id="addPage">S2StrutsAddApplication</a></li>
</ul>
</div>
</body>
</html>

 

 

 menu.mayaa

<?xmlversion="1.0"encoding="Shift_JIS"?>
<m:mayaaxmlns:m="http://mayaa.seasar.org"
    xmlns:html="http://struts.apache.org/tags-html"
    xmlns:bean="http://struts.apache.org/tags-bean"
    m:noCache="true">
  <m:doRenderid="menuBody"name="menu"/>
  <html:linkm:id="addPage"page="/pages/addInput.html"><bean:messagekey="add.title"/></html:link>
</m:mayaa>

  addInput.html

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<html>
<head>
 <metahttp-equiv="Content-Type"content="text/html;charset=Windows-31j">
 <linkhref="../../css/global.css"rel="stylesheet"type="text/css"></link>
 <scripttype="text/javascript"src="../../js/execute.js"></script>
 <titleid="pageTitle">
  S2StrutsAddApplicationDemo
 </title>
</head>
<body>
<divid="appBody">
 <divid="errorMessage"></div>
 <formmethod="GET"action="result.html"id="appForm">
  <inputname="arg1"type="text">+
  <inputname="arg2"type="text">
  <inputtype="submit"value="calculate"id="goCalc">
 </form>
</div>
</body>
</html>

 

 

addInput.mayaa

<?xmlversion="1.0"encoding="Shift_JIS"?>
<m:mayaaxmlns:m="http://mayaa.seasar.org"
    xmlns:html="http://struts.apache.org/tags-html"
    xmlns:bean="http://struts.apache.org/tags-bean"
    m:noCache="true"
    m:extends="/pages/layout/layout.html">
  <m:doRenderid="pageTitle"name="title">
    <bean:messagekey="add.title"/>
  </m:doRender>
  <m:doRenderid="appBody"name="content"/>
  <html:errorsm:id="errorMessage"/>
  <html:formm:id="appForm"action="/add"focus="arg1"/>
  <html:submitm:id="goCalc"><bean:messagekey="calc"/></html:submit>
</m:mayaa>

  result.html

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<html>
<head>
 <metahttp-equiv="Content-Type"content="text/html;charset=Windows-31j">
 <linkhref="../../css/global.css"rel="stylesheet"type="text/css"></link>
 <scripttype="text/javascript"src="../../js/execute.js"></script>
 <titleid="pageTitle">
  S2StrutsApplicationResultDemo
 </title>
</head>
<body>
<divid="appBody">
 <divid="resultMessage">
  result:100
 </div>
</div>
</body>
</html>

 

 

 result.mayaa

<?xmlversion="1.0"encoding="Shift_JIS"?>
<m:mayaaxmlns:m="http://mayaa.seasar.org"
    xmlns:html="http://struts.apache.org/tags-html"
    xmlns:bean="http://struts.apache.org/tags-bean"
    m:noCache="true"
    m:extends="/pages/layout/layout.html">
  <m:doRenderid="pageTitle"name="title">
    <bean:messagekey="result.title"/>
  </m:doRender>
  <m:doRenderid="appBody"name="content"/>
  <divm:id="resultMessage">
    <bean:messagekey="result"/>:<bean:writename="calcForm"property="result"/>
  </div>
</m:mayaa>

  struts-config.xml

<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEstruts-configPUBLIC
     "-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.2//EN"
     "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
  <form-beans>
    <form-beanname="calcForm"type="org.seasar.struts.examples.form.CalculationForm"/>
  </form-beans>
  <action-mappings>
    <action
      path="/add"
      type="org.seasar.struts.examples.add.AddAction"
      name="calcForm"
      scope="request"
      validate="false"
      input="/pages/addInput.html">
      <forwardname="success"path="/pages/result.html"/>
    </action>
  </action-mappings>
  <controllerprocessorClass="org.seasar.struts.processor.S2RequestProcessor"/>
  <message-resourcesparameter="application"/>
  <plug-inclassName="org.apache.struts.validator.ValidatorPlugIn">
    <set-propertyproperty="pathnames"
     value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
  </plug-in>
  <plug-inclassName="org.seasar.struts.plugin.AutoStrutsConfigRegisterPlugIn">
    <set-propertyproperty="enableJar"value="false"/>
    <set-propertyproperty="docRoot"value="/pages"/>
  </plug-in>
</struts-config>

 

 

 tiles-defs.xml

<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEtiles-definitionsPUBLIC
   "-//ApacheSoftwareFoundation//DTDTilesConfiguration1.1//EN"
   "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
<!--
  ThisisablankTilesdefinitionfilewithacommentedexample.
-->
<tiles-definitions>
  <!--sampletilesdefinitions
  <definitionname=".mainLayout"path="/common/layouts/classicLayout.jsp">
    <putname="title" value="SamplePageTitle"/>
    <putname="header"value="/common/header.jsp"/>
    <putname="menu" value=".mainMenu"/>
    <putname="footer"value="/common/footer.jsp"/>
    <putname="body" value=".portal.body"/>
  </definition>
  <definitionname=".mainMenu"path="/common/layouts/vboxLayout.jsp">
    <putListname="list">
      <addvalue=".menu.links"/>
      <addvalue=".menu.taglib.references"/>
      <addvalue=".menu.printer.friendly"/>
      <addvalue=".menu.old.documents"/>
   </putList>
  </definition>
  <definitionname="aPage"extends=".mainLayout">
    <putname="title" value="AnotherTitle"/>
    <putname="body" value=".aPage.body"/>
  </definition>
  endsamples-->
  <definitionname="${YOUR_DEFINITION_HERE}"></definition>
</tiles-definitions>

 

  validation.xml

<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEform-validationPUBLIC
     "-//ApacheSoftwareFoundation//DTDCommonsValidatorRulesConfiguration1.1.3//EN"
     "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<!--
  <formset>
    <formname="logonForm">
      <field
        property="username"
        depends="required">
          <argkey="logonForm.username"/>
      </field>
      <field
        property="password"
        depends="required,mask">
          <argkey="logonForm.password"/>
          <var>
            <var-name>mask</var-name>
            <var-value>^[0-9a-zA-Z]*$</var-value>
          </var>
      </field>
    </form>
  </formset>
-->
</form-validation>

分享到:
评论

相关推荐

    一个日系seasar框架Demo:S2Containor+S2Dao+SAStruts+mayaa

    SAStruts是Seasar对经典的Struts框架的扩展,它提供了更强大的MVC(Model-View-Controller)架构支持。SAStruts将控制逻辑与视图逻辑分离,使得开发者可以独立地修改模型、视图和控制器部分。它还集成了S2Container...

    小日本的开源框架 Seasar2

    接着,下载并解压S2xxx.zip文件,然后在Eclipse中通过"文件→导入→既存的工程"引入seasar2目录。使用Seasar2的基本功能(如S2Container和S2AOP)时,需要在CLASSPATH下包含一系列特定的JAR文件,包括aopalliance、...

    seasar框架S2Dao使用指南

    S2Dao是Seasar2框架的一个重要组成部分,作为一个轻量级的持久化解决方案,它的主要特点是简化了Object-Relational Mapping(O/R映射)的过程,无需繁琐的XML配置。S2Dao的核心优势在于: 1. **无需XML配置**:与...

    seasar2

    这意味着原有的Struts应用可以无缝迁移到S2Struts中,并且可以利用Seasar2提供的高级特性来改进代码质量和可维护性。 #### 连动的配置 为了实现S2Struts与Struts的连动,需要对web.xml进行一些修改: 1. **添加S2...

    sa_framework,s2-tiger,s2-extension2.4 日文的api

    标题 "sa_framework, s2-tiger, s2-extension2.4 日文的API" 暗示了我们正在探讨的是Seasar2框架的一个特定版本,包括s2-tiger和s2-extension2.4的组件,这些组件都有日文的API文档。Seasar2是一个Java企业级应用...

    S2Tiger-2.3.23.zip

    Seasar2是一个开源的Java应用框架,其核心组件之一就是S2Tiger,你提到的"S2Tiger-2.3.23.zip"应该是Seasar2的一个版本更新,主要聚焦于依赖注入(DI)和面向切面编程(AOP)。在深入探讨这些知识点之前,我们先了解...

    seasar2中文文档

    在这个过程中,我们将学习Seasar2中的核心组件之一——`S2Container`。 ##### 登场人物 - **问候语类** (`Greeting`):接口形式,用于定义问候语的行为。 - **问候客户端类** (`GreetingClient`):接口形式,用于...

    s2-dao-1.0.49.zip

    标题中的“s2-dao-1.0.49.zip”指的是Seasar2项目中的一个特定版本,DAO(Data Access Object)模块的压缩包。Seasar2是一个Java平台上的开源框架,它旨在简化企业级应用的开发过程,尤其是数据库相关的操作。DAO层...

    s2-dao-1.0.50.zip

    S2-DAO是Seasar框架中的一个重要部分,全称为"Seasar2 Data Access Object",它提供了数据访问层的抽象,使得开发者能够更方便地进行数据库操作,而无需直接编写SQL语句。这个"seasar框架的讲解s2-dao"压缩包,显然...

    S2Flex2-1.1.0

    《S2Flex2-1.1.0:Seasar2框架与Flex交互的深度解析》 在现代Web应用开发中,交互性和用户体验是至关重要的因素。S2Flex2-1.1.0是一个专为Flash播放器设计的软件库,它使得开发者能够利用Adobe Flex这一强大的...

    Seasar2最新版

    Seasar2框架包含多个组件,如S2Container(容器)、S2DAO(数据访问对象)、S2Action(动作)以及S2Remoting(远程调用)等。这些组件相互协作,构建出一个强大的企业级应用开发环境。 1. S2Container:作为Seasar2...

    seasar2构建工程

    8. **配置文件**:Seasar2项目中通常包含多个配置文件,如`s2-tight coupling.xml`、`s2-component.xml`等,它们定义了框架的行为、组件配置和依赖关系。 9. **部署与运行**:完成编码和配置后,可以使用Ant或Maven...

    seasar教程,java开发框架之一

    seasar教程,最流行的java开发框架之一,再过几年可能成为主流. struts与Spring与Hibernate的简化版本,国外很多大公司己经用了几年了,NEC,LG的软件开发都是用这个的。兄弟们快学吧

    seasar2 官方例子代码

    3. **S2JUnit**:这是Seasar2提供的单元测试框架,扩展了标准的JUnit,提供了数据库回滚、事务管理等功能,使得在测试环境中更加方便地进行数据库操作。 4. **S2Aop**:面向切面编程模块,允许开发者定义切面,从而...

    seasar2.PPT

    在实际开发中,Seasar2提供了诸如数据库访问(S2DAO)、事务管理(S2Transaction)、会话管理(S2Session)等功能,大大简化了企业级应用的开发工作。此外,Seasar2还支持MVC(Model-View-Controller)架构,通过S2...

    Seasar2的英文介绍

    然而,尽管Seasar2在当时是流行的框架之一,随着Spring框架的崛起,Seasar2的使用逐渐减少。不过,对于学习和理解组件化、容器化以及面向切面编程等概念,Seasar2仍是一个有价值的参考和学习资源。

    seasar2 samples

    1. **S2DAO.NET**:假设s2dao.net是针对.NET平台的一个数据访问对象(DAO)框架,类似于Java中的Seasar2 S2DAO。DAO模式是设计模式之一,用于在业务逻辑和数据库之间创建一层抽象,使得代码对具体数据库的依赖性降低...

Global site tag (gtag.js) - Google Analytics