µ±Ç°Î»Ö㺠´úÂëÃÔ >> JavaScript >> ÈÕϵ¿ò¼ÜÖ®seasar2(S2JSF)-(ÉÏ)
  Ïêϸ½â¾ö·½°¸

ÈÕϵ¿ò¼ÜÖ®seasar2(S2JSF)-(ÉÏ)

Èȶȣº1788   ·¢²¼Ê±¼ä£º2012-10-07 17:28:51.0
ÈÕϵ¿ò¼ÜÖ®seasar2(S2JSF)---(ÏÂ)

¡¡jsf.dicon

<?xmlversion="1.0"encoding="Shift_JIS"?>
<!DOCTYPEcomponentsPUBLIC"-//SEASAR//DTDS2Container2.4//EN"
¡¡¡¡"http://www.seasar.org/dtd/components24.dtd">
<componentsnamespace="jsf">
¡¡¡¡<includepath="jsfErrorPage.dicon"/>
¡¡¡¡<componentclass="org.seasar.jsf.runtime.CompositeTaglibManager">
¡¡¡¡¡¡¡¡<initMethodname="addTaglibManager">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.runtime.FileSystemTaglibManagerImpl">
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<initMethodname="init"/>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<destroyMethodname="destroy"/>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡</component>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTaglibManager">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.runtime.ServletContextTaglibManagerImpl">
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<initMethodname="init"/>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<destroyMethodname="destroy"/>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡</component>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡</component>
¡¡¡¡<componentclass="org.seasar.jsf.runtime.JsfConfigImpl">
¡¡¡¡¡¡¡¡<initMethodname="addTaglibUri">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"h"</arg>
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"http://java.sun.com/jsf/html"</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTaglibUri">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"f"</arg>
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"http://java.sun.com/jsf/core"</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTaglibUri">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"s"</arg>
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"http://www.seasar.org/jsf"</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTaglibUri">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"x"</arg>
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"http://myfaces.apache.org/tomahawk"</arg>
¡¡¡¡¡¡¡¡</initMethod>¡¡¡¡
¡¡¡¡¡¡¡¡<initMethodname="addTaglibUri">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"hello"</arg>
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"http://examples.jsf/taglib"</arg>
¡¡¡¡¡¡¡¡</initMethod>¡¡¡¡
¡¡¡¡¡¡¡¡<initMethodname="addTaglibUri">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"r"</arg>
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"http://examples.jsf.hoge/taglib"</arg>
¡¡¡¡¡¡¡¡</initMethod>¡¡¡¡
¡¡¡¡</component>
¡¡¡¡<componentclass="org.seasar.jsf.runtime.TagPoolImpl"/>
¡¡¡¡<componentclass="org.seasar.jsf.runtime.TagProcessorTreeFactoryImpl">
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.PassThroughElementSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.SelectManyCheckboxSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.SelectOneRadioSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.SelectItemSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.InsertSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.ValidatorSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.InjectSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.MetaContentTypeSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.HtmlSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.OutputTextSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.TitleSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.OutputLinkSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.CommandButtonSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.CommandLinkSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.FormSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.BaseSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.InputTextSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.InputHiddenSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.InputSecretSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.InputTextareaSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.SelectBooleanCheckboxSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.SelectOneMenuSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.InputRadioSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.SelectManyListboxSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addTagSelector">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<componentclass="org.seasar.jsf.selector.ElementSelector"/>
¡¡¡¡¡¡¡¡¡¡¡¡</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡</component>
¡¡¡¡<componentclass="org.seasar.jsf.runtime.ViewTemplateFactoryImpl"/>
¡¡¡¡<componentclass="org.seasar.jsf.runtime.ViewRendererImpl"/>
¡¡¡¡<component
¡¡¡¡¡¡¡¡name="webappConfigManager"
¡¡¡¡¡¡¡¡class="org.seasar.jsf.webapp.ServletContextWebappConfigManagerImpl">
¡¡¡¡¡¡¡¡<initMethodname="init"/>
¡¡¡¡</component>
</components>

?

?

¡¡jsfErrorPage.dicon

<?xmlversion="1.0"encoding="Shift_JIS"?>
<!DOCTYPEcomponentsPUBLIC"-//SEASAR//DTDS2Container2.4//EN"
¡¡¡¡"http://www.seasar.org/dtd/components24.dtd">
<componentsnamespace="jsfErrorPage">
¡¡¡¡<componentclass="org.seasar.jsf.runtime.ErrorPageManagerImpl">
¡¡¡¡¡¡¡¡<initMethodname="addErrorPage">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>@org.seasar.framework.exception.SQLRuntimeException@class</arg>
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"/errorpage/errorPageHsqldb.html"</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡¡¡¡¡<initMethodname="addErrorPart">
¡¡¡¡¡¡¡¡¡¡¡¡<arg>@org.seasar.framework.exception.SQLRuntimeException@class</arg>
¡¡¡¡¡¡¡¡¡¡¡¡<arg>"/insert/errorPageHsqldb.html"</arg>
¡¡¡¡¡¡¡¡</initMethod>
¡¡¡¡</component>
</components>

¡¡¡¡log4j.properties

log4j.category.org.seasar=DEBUG,C
log4j.additivity.org.seasar=false
log4j.category.examples=DEBUG,C
log4j.additivity.examples=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
#myfaceslogger
log4j.logger.org.apache.myfaces=INFO
log4j.logger.org.apache.myfaces.config=INFO
log4j.logger.org.apache.myfaces.application=INFO
log4j.logger.org.apache.myfaces.application.jsp=INFO
log4j.logger.org.apache.myfaces.lifecycle=INFO
log4j.logger.org.apache.myfaces.taglib=INFO
log4j.logger.org.apache.myfaces.util.DebugUtils=INFO
log4j.logger.org.apache.myfaces.renderkit.html.HtmlResponseWriterImpl=WARN
log4j.logger.org.apache.myfaces.renderkit.html.HtmlRenderKitImpl=WAR

?

?

?

teedaCustomize.dicon

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEcomponentsPUBLIC"-//SEASAR//DTDS2Container2.4//EN"
¡¡¡¡"http://www.seasar.org/dtd/components24.dtd">
<components>
¡¡¡¡<componentclass="org.seasar.teeda.core.render.DefaultComponentIdLookupStrategy"/>
¡¡¡¡<componentclass="org.seasar.teeda.core.application.impl.DefaultComponentLookupStrategy"/>
</components>

¡¡¡¡teedaErrorPage.dicon

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEcomponentsPUBLIC"-//SEASAR//DTDS2Container2.4//EN"
¡¡¡¡"http://www.seasar.org/dtd/components24.dtd">
<componentsnamespace="teedaErrorPage">
¡¡¡¡<componentclass="org.seasar.teeda.core.util.ServletErrorPageManagerImpl"/>
</components>

¡¡¡¡addadd.html

<htmlxmlns:m="http://www.seasar.org/maya"m:extends="/WEB-INF/layout/layout.html">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=Windows-31j"/>
<title>Add</title>
</head>
<body>
<spanm:inject="f:param"m:name="layoutTitle"m:value="Add"/>
<spanm:inject="s:insert"m:name="body">
<form>
<spanm:inject="h:messages"m:globalOnly="false"m:showDetail="true"/>
<inputtype="text"m:value="#{addDto.arg1}"/>+¡¡
<inputtype="text"m:value="#{addDto.arg2}"/>=¡¡
<spanm:value="#{addDto.result}"/>
<inputtype="submit"value="calculate"m:action="#{addAction.calculate}"/>
</form>
</span>
</body>
</html>

?

?

hellohello.html

<htmlxmlns:m="http://www.seasar.org/maya"m:extends="/WEB-INF/layout/layout.html">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=Windows-31j"/>
<title>Hello</title>
</head>
<body>
<spanm:inject="f:param"m:name="layoutTitle"m:value="Hello"/>
<spanm:inject="s:insert"m:name="body">
Hello<spanm:value="#{helloDto.name}">hoge</span>
<formaction="hoge"m:passthrough="true"></form>
</span>
</body>
</html>

¡¡¡¡WEB-INFlayoutcsslayout.html

<htmlxmlns:m="http://www.seasar.org/maya">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=Windows-31j"/>
<linkrel="stylesheet"type="text/css"href="css/global.css"/>
<titlem:value="#{layoutTitle}">S2JSFExample</title>
</head>
<body>
<divclass="menu">
¡¡¡¡<spanm:inject="s:insert"m:src="/WEB-INF/layout/menu.html"/>
</div>
<divclass="level0">
¡¡¡¡<divclass="level1">
¡¡¡¡¡¡¡¡<divclass="header">
¡¡¡¡¡¡¡¡¡¡¡¡<spanm:inject="s:insert"m:src="/WEB-INF/layout/header.html"/>
¡¡¡¡¡¡¡¡</div>
¡¡¡¡¡¡¡¡<divclass="body">
¡¡¡¡¡¡¡¡¡¡¡¡<spanm:inject="s:insert"m:name="body"/>
¡¡¡¡¡¡¡¡</div>
¡¡¡¡</div>
</div>
</body>
</html>

?

?

?

WEB-INFlayoutfooter.html

<htmlxmlns:m="http://www.seasar.org/maya">
<body>
<spanm:inject="s:insert">
TheSeasarFoundation
</span>
</body>
</html>

¡¡¡¡WEB-INFlayoutheader.html

<htmlxmlns:m="http://www.seasar.org/maya">
<body>
<spanm:inject="s:insert">
<imgm:inject="h:graphicImage"m:url="/images/seasar.gif"/>
</span>
</body>
</html>

¡¡¡¡WEB-INFlayoutlayout.html

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<htmlxmlns:m="http://www.seasar.org/maya">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=Windows-31j"/>
<linkm:inject="s:link"rel="stylesheet"type="text/css"href="/css/global.css"/>
<titlem:value="#{layoutTitle}"/>
</head>
<body>
<tableborder="0"cellspacing="5">
<tr>
¡¡<tdcolspan="2"><spanm:inject="s:insert"m:src="/WEB-INF/layout/header.html"/></td>
</tr>
<tr>
¡¡<tdwidth="140"valign="top">
¡¡¡¡<spanm:inject="s:insert"m:src="/WEB-INF/layout/menu.html"/>
¡¡</td>
¡¡<tdvalign="top"align="left">
¡¡¡¡<spanm:inject="s:insert"m:name="body"/>
¡¡</td>
</tr>
<tr>
¡¡<tdcolspan="2">
¡¡¡¡<hr/>
¡¡</td>
</tr>
<tr>
¡¡<tdcolspan="2">
¡¡¡¡<spanm:inject="s:insert"m:src="/WEB-INF/layout/footer.html"/>
¡¡</td>
</tr>
</table>
</body>
</html>

?

?

¡¡WEB-INFlayoutmenu.html

<htmlxmlns:m="http://www.seasar.org/maya">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=Windows-31j"/>
<title>S2JSFExample</title>
</head>
<body>
<spanm:inject="s:insert">
<form>
<ul>
<li>
<am:action="hello">Hello</a>
</li>
<li>
<am:action="add">Add</a>
</li>
</ul>
</form>
</span>
</body>
</html>

¡¡¡¡faces-config.xml

<?xmlversion="1.0"?>
<!DOCTYPEfaces-configPUBLIC
¡¡"-//SunMicrosystems,Inc.//DTDJavaServerFacesConfig1.0//EN"
¡¡"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
¡¡¡¡<application>
¡¡¡¡¡¡¡¡<message-bundle>appMessages</message-bundle>
¡¡¡¡¡¡¡¡<locale-config>
¡¡¡¡¡¡¡¡¡¡¡¡<default-locale>en</default-locale>
¡¡¡¡¡¡¡¡¡¡¡¡<supported-locale>ja</supported-locale>
¡¡¡¡¡¡¡¡</locale-config>
¡¡¡¡</application>
¡¡¡¡<converter>
¡¡¡¡¡¡¡¡<converter-for-class>java.util.Date</converter-for-class>
¡¡¡¡¡¡¡¡<converter-class>org.seasar.jsf.convert.S2DateTimeConverter</converter-class>
¡¡¡¡</converter>
¡¡¡¡<navigation-rule>
¡¡¡¡¡¡¡¡<navigation-case>
¡¡¡¡¡¡¡¡¡¡¡¡<from-outcome>hello</from-outcome>
¡¡¡¡¡¡¡¡¡¡¡¡<to-view-id>/hello/hello.html</to-view-id>
¡¡¡¡¡¡¡¡</navigation-case>
¡¡¡¡</navigation-rule>
¡¡¡¡<navigation-rule>
¡¡¡¡¡¡¡¡<navigation-case>
¡¡¡¡¡¡¡¡¡¡¡¡<from-outcome>add</from-outcome>
¡¡¡¡¡¡¡¡¡¡¡¡<to-view-id>/add/add.html</to-view-id>
¡¡¡¡¡¡¡¡¡¡¡¡<redirect/>
¡¡¡¡¡¡¡¡</navigation-case>
¡¡¡¡</navigation-rule>
¡¡¡¡<lifecycle>
¡¡¡¡¡¡¡¡<phase-listener>org.seasar.teeda.core.event.PhaseChangeTracer</phase-listener>
¡¡¡¡</lifecycle>
</faces-config>

?

?

¡¡web.xml

<?xmlversion="1.0"?>
<!DOCTYPEweb-appPUBLIC
¡¡"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN"
¡¡"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
¡¡¡¡<context-param>
¡¡¡¡¡¡¡¡<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
¡¡¡¡¡¡¡¡<param-value>server</param-value>
¡¡¡¡¡¡¡¡<description>
¡¡¡¡¡¡¡¡¡¡¡¡Statesavingmethod:"client"or"server"(=default)
¡¡¡¡¡¡¡¡¡¡¡¡SeeJSFSpecification2.5.2
¡¡¡¡¡¡¡¡</description>
¡¡¡¡</context-param>
¡¡¡¡<context-param>
¡¡¡¡¡¡¡¡<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
¡¡¡¡¡¡¡¡<param-value>.html</param-value>
¡¡¡¡</context-param>
¡¡¡¡<!--ExtensionsFilter-->
¡¡¡¡<filter>
¡¡¡¡¡¡¡¡<filter-name>extensionsFilter</filter-name>
¡¡¡¡¡¡¡¡<filter-class>org.apache.myfaces.component.html.util.ExtensionsFilter</filter-class>
¡¡¡¡¡¡¡¡<init-param>
¡¡¡¡¡¡¡¡¡¡¡¡<param-name>uploadMaxFileSize</param-name>
¡¡¡¡¡¡¡¡¡¡¡¡<param-value>100m</param-value>
¡¡¡¡¡¡¡¡¡¡¡¡<description>Setthesizelimitforuploadedfiles.
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Format:10-10bytes
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡10k-10KB
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡10m-10MB
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1g-1GB
¡¡¡¡¡¡¡¡¡¡¡¡</description>
¡¡¡¡¡¡¡¡</init-param>
¡¡¡¡¡¡¡¡<init-param>
¡¡¡¡¡¡¡¡¡¡¡¡<param-name>uploadThresholdSize</param-name>
¡¡¡¡¡¡¡¡¡¡¡¡<param-value>100k</param-value>
¡¡¡¡¡¡¡¡¡¡¡¡<description>Setthethresholdsize-files
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡belowthislimitarestoredinmemory,filesabove
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡thislimitarestoredondisk.
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Format:10-10bytes
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡10k-10KB
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡10m-10MB
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1g-1GB
¡¡¡¡¡¡¡¡¡¡¡¡</description>
¡¡¡¡¡¡¡¡</init-param>
¡¡¡¡¡¡¡¡¡¡¡¡<init-param>
¡¡¡¡¡¡¡¡¡¡¡¡<param-name>uploadRepositoryPath</param-name>
¡¡¡¡¡¡¡¡¡¡¡¡<param-value>/temp</param-value>
¡¡¡¡¡¡¡¡¡¡¡¡<description>Setthepathwheretheintermediaryfileswillbestored.
¡¡¡¡¡¡¡¡¡¡¡¡</description>
¡¡¡¡¡¡¡¡</init-param>
¡¡¡¡</filter>
¡¡¡¡<filter>
¡¡¡¡¡¡¡¡<filter-name>s2filter</filter-name>
¡¡¡¡¡¡¡¡<filter-class>org.seasar.framework.container.filter.S2ContainerFilter</filter-class>
¡¡¡¡</filter>
¡¡¡¡<filter>
¡¡¡¡¡¡¡¡<filter-name>encodingfilter</filter-name>
¡¡¡¡¡¡¡¡<filter-class>org.seasar.extension.filter.EncodingFilter</filter-class>
¡¡¡¡¡¡¡¡<init-param>
¡¡¡¡¡¡¡¡¡¡¡¡<param-name>encoding</param-name>
¡¡¡¡¡¡¡¡¡¡¡¡<param-value>Windows-31j</param-value>
¡¡¡¡¡¡¡¡</init-param>
¡¡¡¡</filter>
¡¡¡¡<filter>
¡¡¡¡¡¡¡¡<filter-name>requestDumpFilter</filter-name>
¡¡¡¡¡¡¡¡<filter-class>examples.jsf.util.RequestDumpFilter</filter-class>
¡¡¡¡</filter>
¡¡¡¡<!--ExtensionsFilter-->
¡¡¡¡<filter-mapping>
¡¡¡¡¡¡¡¡<filter-name>extensionsFilter</filter-name>
¡¡¡¡¡¡¡¡<url-pattern>*.html</url-pattern>
¡¡¡¡</filter-mapping>
¡¡¡¡<filter-mapping>
¡¡¡¡¡¡¡¡<filter-name>extensionsFilter</filter-name>
¡¡¡¡¡¡¡¡<url-pattern>/faces/*</url-pattern>
¡¡¡¡</filter-mapping>
¡¡¡¡<filter-mapping>
¡¡¡¡¡¡¡¡<filter-name>s2filter</filter-name>
¡¡¡¡¡¡¡¡<url-pattern>/*</url-pattern>
¡¡¡¡</filter-mapping>
¡¡¡¡<filter-mapping>
¡¡¡¡¡¡¡¡<filter-name>encodingfilter</filter-name>
¡¡¡¡¡¡¡¡<url-pattern>*.html</url-pattern>
¡¡¡¡</filter-mapping>
¡¡¡¡<filter-mapping>
¡¡¡¡¡¡¡¡<filter-name>requestDumpFilter</filter-name>
¡¡¡¡¡¡¡¡<url-pattern>/*</url-pattern>
¡¡¡¡</filter-mapping>
¡¡¡¡<listener>
¡¡¡¡¡¡¡¡<listener-class>org.seasar.teeda.core.webapp.TeedaConfigureListener</listener-class>
¡¡¡¡</listener>
¡¡¡¡<!--facesServlet-->
¡¡¡¡<servlet>
¡¡¡¡¡¡¡¡<servlet-name>facesServlet</servlet-name>
¡¡¡¡¡¡¡¡<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
¡¡¡¡¡¡¡¡<load-on-startup>2</load-on-startup>
¡¡¡¡</servlet>
¡¡¡¡<servlet>
¡¡¡¡¡¡¡¡<servlet-name>s2servlet</servlet-name>
¡¡¡¡¡¡¡¡<servlet-class>org.seasar.framework.container.servlet.S2ContainerServlet</servlet-class>
¡¡¡¡¡¡¡¡<init-param>
¡¡¡¡¡¡¡¡¡¡¡¡<param-name>debug</param-name>
¡¡¡¡¡¡¡¡¡¡¡¡<param-value>true</param-value>
¡¡¡¡¡¡¡¡</init-param>
¡¡¡¡¡¡¡¡<load-on-startup>1</load-on-startup>
¡¡¡¡</servlet>
¡¡¡¡<servlet-mapping>
¡¡¡¡¡¡¡¡<servlet-name>facesServlet</servlet-name>
¡¡¡¡¡¡¡¡<url-pattern>*.html</url-pattern>
¡¡¡¡</servlet-mapping>
¡¡¡¡<servlet-mapping>
¡¡¡¡¡¡¡¡<servlet-name>s2servlet</servlet-name>
¡¡¡¡¡¡¡¡<url-pattern>/s2servlet</url-pattern>
¡¡¡¡</servlet-mapping>
¡¡¡¡<welcome-file-list>
¡¡¡¡¡¡¡¡<welcome-file>index.html</welcome-file>
¡¡¡¡</welcome-file-list>
</web-app>

?

?

?

index.html

<htmlxmlns:m="http://www.seasar.org/maya"m:extends="/WEB-INF/layout/layout.html">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=Windows-31j"/>
<title>S2JSFExample</title>
</head>
<body>
<spanm:inject="f:param"m:name="layoutTitle"m:value="Home"/>
<spanm:inject="s:insert"m:name="body">
<h1>WelcometoS2JSFExample</h1>
</span>
</body>
</html>

¡¡¡¡ÒÔÉÏ´úÂëÊÇ´ÓS2JSF×Ô´øµÄsampleÖгé³öÀ´µÄ£¬¸ü¶àÓ÷¨»¹ÇëÏÂÔØS2JSF¡£

¡¡¡¡http://s2jsf.seasar.org/ja/

¡¡¡¡ÉÏÀýÖÐʹÓõÄlib¿â¾ùΪS2JSF×Ô´øµÄsampleÖÐÈ¡µÃ£¬ÁбíÈçÏ£º

aopalliance-1.0.jar
commons-beanutils-1.6.1.jar
commons-collections-3.1.jar
commons-el-1.0.jar
commons-fileupload-1.0.jar
commons-lang-2.1.jar
commons-logging-1.1.jar
geronimo-jsp_2.0_spec-1.0.jar
geronimo-jta_1.1_spec-1.0.jar
hsqldb-1.8.0.1.jar
javassist-3.4.ga.jar
jstl-1.1.2.jar
log4j-1.2.13.jar
nekohtml-0.9.3-nirvana.jar
ognl-2.6.7.jar
poi-2.5.1-final-20040804.jar
s2-dao-1.0.43.jar
s2-extension-2.4.13-sources.jar
s2-extension-2.4.13.jar
s2-framework-2.4.13-sources.jar
s2-framework-2.4.13.jar
s2-jsf-1.1.2-sources.jar
s2-jsf-1.1.2.jar
teeda-core-1.0.7-sources.jar
teeda-core-1.0.7.jar
teeda-extension-1.0.7.jar
tomahawk-1.1.1.jar
xercesImpl-2.6.2-sources.jar
xercesImpl-2.6.2.jar