[s2struts-dev:72] S2Struts+VelocityのValidation処理

安田 征弘 [E-MAIL ADDRESS DELETED]
2008年 8月 20日 (水) 17:34:51 JST


$B%a!<%j%s%0%j%9%H$N3'MM(B

$B$3$s$K$A$O!"(BS2Struts$B$N(BValidation$B=hM}$K4X$9$k<ALd$G$9!#(B

$B!V(BSeasar2$B$K$h$k(BWeb$B%"%W%j%1!<%7%g%s%9!<%Q!<%5%s%W%k!W$N(B2-2$B$K=q$+$l$F$$$k(B
S2Struts+Mayaa$B$N(BValidation$B=hM}$r(B S2Struts+Velocity$B$KJQ$($?$$$N$G$9$,!"(B
Action$B$G(BMessageManager$B$rDL$C$F$$$k$N$O3NG'$G$-$k$N$G$9$,!"(BVelocity$B$G$I$&(B
$B$d$C$F$bI=<($5$;$k$3$H$,$G$-$^$;$s!#(B
Velocity$B$H(BValidation$B$N$?$a$[E-MAIL ADDRESS DELETED]$9$k!"[E-MAIL ADDRESS DELETED]%U%!%$%k$bDj5A$7$F$$$k$D$b$j(B
$B$J$N$G$9$,!"$J$<$+(BVelocity$BB&$GI=<($5$l$^$;$s!#(B
Velocity$B$d(BS2Struts$BEy$N(BMailingList$B$d(BWeb$B%5%$%H$b%A%'%C%/$7$?$N$G$9$,!"2r7h(B
$B$G$-$J$+$C$?$?$a!"<ALd$5$;$F$$$?$@$-$^$7$?!#(B

$B;HMQ$7$F$$$k%i%$%V%i%j$N(BVersion$B$O(BSeasar2.3$B!"(BS2Struts1.2.8$B!"(BVelocity1.5$B$G(B
$B$9!#(BDB$B@\B3$O(BS2DAO$B$G$O$J$/!"(BiBatis$B$r;H$C$F$$$^$9$,!"LdBj$J$/F0$$$F$*$j$^$9!#(B
$B8=>u$G$9$,!"(BVelocity$BB&$G(BMessageManager$B$[E-MAIL ADDRESS DELETED]$7$?(BActionError$B$N(Bkey$B!J!a$3$N(B
$B>l9g$O(B$errors.login$B!K$r<hF@$G$-$k$H$3$m$^$G$$$C$?$N$G$9$,!"(B
$B$=$NMWAG!J!a(B.properties$B%U%!%$%k$N%a%C%;!<%8!K$,<hF@$G$-$^$;$s!#(B

$B$^$?!"(Bkey$B$r<hF@$7$?J}K!$bIaDL$K$O<hF@$G$-$:$K!"2<5-$N$h$&$K(Bkey$B$r<hF@$7$F(B
$B$$$^$9(B

------------------------------------------
#set($actionerrors=$request.getAttribute('org.apache.struts.action.ERROR') )
#foreach( $e in $actionerrors.get() )
ActionError key: $e.key
$errors.login
------------------------------------------

Struts$B$^$?$O(BS2Struts$B$^$?$O(BVelocity$B$N$I$3$+$G(BResourceBundle$B$7$?CM$r<hF@$G(B
$B$-$:$K$$$k5$$,$7$^$9!#(B
$B?=$7Lu$4$6$$$^$;$s$,!"65$($F$/$@$5$$!#$h$m$7$/$*4j$$CW$7$^$9!#(B

$B2<5-!"@_Dj%U%!%$%k(B + Java$B%U%!%$%k$G$9!#(B
$B-!(Bstruts-config.xml
$B-"(Btoolbox.xml
$B-#(BLoginActionImpl
$B-$(BLoginAction
$B-%(Bapplication.properties
$B-&(Bvalidator-rules.xml
$B-'(Bvalidation.xml
$B-((Bvelocity.properties
$B-)(Blogin.vm
$B-*(BUserLogic
$B-+(BUserLogicImpl
$B-,(BBeanUtil
$B--(BUser
$B-.(Bshopping.dicon
$B-/(Bapp.dicon

--------------$B-!(Bstruts-config.xml----------------
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD
Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

<struts-config>
<controller
processorClass="org.seasar.struts.processor.S2RequestProcessor" />

<message-resources parameter="application" />

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/config/validator-rules.xml,/WEB-INF/config/validation.xml"/>
</plug-in>

<plug-in
className="org.seasar.struts.plugin.AutoStrutsConfigRegisterPlugIn">
<set-property property="enableJar" value="false" />
</plug-in>
</struts-config>
--------------------------------------------
--------------$B-"(Btoolbox.xml------------------
<?xml version="1.0"?>
<toolbox>
<tool>
<key>math</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.MathTool</class>
</tool>
<tool>
<key>date</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.DateTool</class>
</tool>
<tool>
<key>sort</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.SortTool</class>
</tool>
<tool>
<key>link</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.StrutsLinkTool</class>
</tool>
<tool>
<key>slink</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.SecureLinkTool</class>
</tool>
<tool>
<key>text</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.MessageTool</class>
</tool>
<tool>
<key>errors</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.ErrorsTool</class>
</tool>
<tool>
<key>messages</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.ActionMessagesTool</class>
</tool>
<tool>
<key>form</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.FormTool</class>
</tool>
<tool>
<key>tiles</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.TilesTool</class>
</tool>
<tool>
<key>validator</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.ValidatorTool</class>
</tool>
<tool>
<key>cookie</key>
<scope>request</scope>
<class>org.apache.velocity.tools.view.tools.CookieTool</class>
</tool>
</toolbox>
-----------------------------------------
-------------$B-#(BLoginActionImpl---------------
$B!A>JN,!A!J$3$3$O3N<B$KDL$C$F$$$^$9!K(B
MessageManageer.addGlobalError("errors.login");
MessageManager.saveErrors();
return FAILURE;
-----------------------------------------
-------------$B-$(BLoginAction-----------------
package shopping.action.login;

public interface LoginAction {

public static final String SUCCESS_FORWARD =
"path=/WEB-INF/page/finishedLogin.vm";
public String SUCCESS = "success";

public static final String FAILURE_FORWARD = "path=/login.vm";
public String FAILURE = "failure";

public String login();
}
-----------------------------------------
-----------$B-%(Bapplication.properties-----------
# resource[errors.required={0}$B$rF~NO$7$F$/$@$5$$!#(B]
errors.required={0}$B$rF~NO$7$F$/$@$5$$!#(B

# resource[errors.login=$B%m%0%$%s(BID$B$^$?$O%Q%9%o!<%I$[E-MAIL ADDRESS DELETED]$7$/$"$j$^$;$s!#(B]
errors.login=$B%m%0%$%s(BID$B$^$?$O%Q%9%o!<%I$[E-MAIL ADDRESS DELETED]$7$/$"$j$^$;$s!#(B

# resource[userId=$B%m%0%$%s(BID]
userId=$B%m%0%$%s(BID

# resource[password=$B%Q%9%o!<%I(B]
password=$B%Q%9%o!<%I(B
-----------------------------------------
-------------$B-&(Bvalidator-rules.xml-------------
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules
Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<global>
<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>

<validator name="requiredif"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequiredIf"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>

<validator name="validwhen"
msg="errors.required"
classname="org.apache.struts.validator.validwhen.ValidWhen"
method="validateValidWhen"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"/>

<validator name="minlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMinLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.minlength"
jsFunction="org.apache.commons.validator.javascript.validateMinLength"/>

<validator name="maxlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMaxLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.maxlength"
jsFunction="org.apache.commons.validator.javascript.validateMaxLength"/>

<validator name="mask"
classname="org.apache.struts.validator.FieldChecks"
method="validateMask"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.invalid"/>

<validator name="byte"
classname="org.apache.struts.validator.FieldChecks"
method="validateByte"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.byte"
jsFunctionName="ByteValidations"/>

<validator name="short"
classname="org.apache.struts.validator.FieldChecks"
method="validateShort"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.short"
jsFunctionName="ShortValidations"/>

<validator name="integer"
classname="org.apache.struts.validator.FieldChecks"
method="validateInteger"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.integer"
jsFunctionName="IntegerValidations"/>

<validator name="long"
classname="org.apache.struts.validator.FieldChecks"
method="validateLong"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.long"/>

<validator name="float"
classname="org.apache.struts.validator.FieldChecks"
method="validateFloat"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.float"
jsFunctionName="FloatValidations"/>

<validator name="double"
classname="org.apache.struts.validator.FieldChecks"
method="validateDouble"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.double"/>

<validator name="date"
classname="org.apache.struts.validator.FieldChecks"
method="validateDate"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.date"
jsFunctionName="DateValidations"/>

<validator name="intRange"
classname="org.apache.struts.validator.FieldChecks"
method="validateIntRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends="integer"
msg="errors.range"/>

<validator name="floatRange"
classname="org.apache.struts.validator.FieldChecks"
method="validateFloatRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends="float"
msg="errors.range"/>

<validator name="doubleRange"
classname="org.apache.struts.validator.FieldChecks"
method="validateDoubleRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends="double"
msg="errors.range"/>

<validator name="creditCard"
classname="org.apache.struts.validator.FieldChecks"
method="validateCreditCard"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.creditcard"/>

<validator name="email"
classname="org.apache.struts.validator.FieldChecks"
method="validateEmail"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.email"/>

<validator name="url"
classname="org.apache.struts.validator.FieldChecks"
method="validateUrl"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.url"/>

<validator name="minbytelength"
classname="org.seasar.struts.validator.FieldChecks"
method="validateMinByteLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.minbytelength"/>


<validator name="maxbytelength"
classname="org.seasar.struts.validator.FieldChecks"
method="validateMaxByteLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.maxbytelength"/>

<!--
This simply allows struts to include the validateUtilities into a page,
it should
not be used as a validation rule.
-->
<validator name="includeJavaScriptUtilities"
classname=""
method=""
methodParams=""
depends=""
msg=""
jsFunction="org.apache.commons.validator.javascript.validateUtilities"/>
</global>
</form-validation>
--------------------------------------------------
----------------$B-'(Bvalidation.xml----------------------
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules
Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

<form-validation>

<!--
This is a minimal Validator form file with a couple of examples.
-->

<global>
</global>

</form-validation>
--------------------------------------------------
----------------$B-((Bvelocity.properties------------------
runtime.log.error.stacktrace = false
runtime.log.warn.stacktrace = false
runtime.log.info.stacktrace = false
runtime.log.invalid.reference = true

input.encoding=UTF-8
output.encoding=UTF-8

directive.foreach.counter.name = velocityCount
directive.foreach.counter.initial.value = 1

directive.include.output.errormsg.start = <!-- include error :
directive.include.output.errormsg.end = see error log -->

directive.parse.max.depth = 10

webapp.resource.loader.cache = true
webapp.resource.loader.modificationCheckInterval = 3
velocimacro.library.autoreload = false
velocimacro.library = /WEB-INF/config/VM_global_library.vm

velocimacro.permissions.allow.inline = true
velocimacro.permissions.allow.inline.to.replace.global = false
velocimacro.permissions.allow.inline.local.scope = false

velocimacro.context.localscope = false

runtime.interpolate.string.literals = true

resource.manager.class =
org.apache.velocity.runtime.resource.ResourceManagerImpl
resource.manager.cache.class =
org.apache.velocity.runtime.resource.ResourceCacheImpl
---------------------------------------------------
-----------------$B-)(Blogin.vm----------------------
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link id="css" href="${request.getContextPath()}/css/style.css"
rel="stylesheet" type="text/css"></link>
<title>$B%m%0%$%s(B</title>
</head>
<body>

<div align="center" class="body">
<h2>$B%m%0%$%s2hLL(B</h2>
<div id="errors">
<br/>
<div id="errorMessage"></div>
</div>
<form method="POST" action="login.do" id="appForm">
<table>
<tr height="40px">
<td>$B%m%0%$%s(BID</td>
<td><input type="text" class="userId" name="userId" value=""
id="userId"></td>
</tr>
<tr height="40px">
<td>$B%Q%9%o!<%I(B</td>
<td><input type="password" class="password" name="password" value=""
id="password"></td>
</tr>
</table>
<table>
<tr>
<td align="center"><input type="submit" value="$B%m%0%$%s(B"></td>
<td align="center"><input type="reset" value="$B%j%;%C%H(B"></td>
</tr>
</table>
</form>
</div>

#set($actionerrors=$request.getAttribute('org.apache.struts.action.ERROR') )
ActionErrors class: $actionerrors.class.name
ActionErrors size: $actionerrors.size()
#foreach( $e in $actionerrors.get() )
ActionError key: $e.key
#end

</body>
</html>
----------------------------------------
-------------$B-*(BLoginForm.java------------
package shopping.action.login;

import java.io.Serializable;

public class LoginForm implements Serializable {
private static final long serialVersionUID = 1L;

public static final String loginId_VALIDATOR = "required";
public static final int loginId_VALIDATOR_ORDER = 1;
public static final String loginId_VALIDATOR_ARGS = "userId";
public static final String password_VALIDATOR = "required";
public static final int password_VALIDATOR_ORDER = 2;
public static final String password_VALIDATOR_ARGS = "password";

private String userId;
private String password;

public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
----------------------------------------
---------------$B-+(BUserLogic--------------
package shopping.logic;

import java.util.List;

import shopping.action.entry.EntryUserForm;
import shopping.action.login.LoginForm;
import shopping.dto.User;

public interface UserLogic {
//UserEntry$B=hM}!JEPO?;~!K(B
void entryUser(EntryUserForm userEntryForm);
//Login$B=hM}!J%m%0%$%s$7$?(BUser$B>pJs$rJV$9!K(B
List<User> getUserByLoginIdAndPassword(LoginForm userLoginForm);
}
---------------------------------------
-------------$B-,(BUserLogicImpl------------
package shopping.logic;

import java.util.List;

import shopping.action.entry.UserForm;
import shopping.action.login.LoginForm;
import shopping.dao.UserDao;
import shopping.dto.User;
import shopping.utils.BeanUtil;

public class UserLogicImpl implements UserLogic {
private UserDao userDao;
private List<User> userlist;

public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}

//Entry$B;~$K8F$S=P$5$l$k!J(BForm$B$NCf?H$r(BUser$B%/%i%9!J(BBean$B!K$K3JG<$7$F(BDao$B$X!K(B
public void entryUser(UserForm userEntryForm) {
User user = new User();
BeanUtil.copyProperties(user, userEntryForm);
//Form$B$N3FMWAG$,3JG<$5$l$?(Buser$B$r%G!<%?%Y!<%9$XEO$7!"EPO?$9$k(B
userDao.create(user);
}

//Login$B;~$K8F$S=P$5$l$k!J(BForm$B$NCf?H$r(BUser$B%/%i%9!J(BBean$B!K$K3JG<$7$F(BDao$B$X!K(B
public List<User> getUserByLoginIdAndPassword(LoginForm loginForm) {
User user = new User();
BeanUtil.copyProperties(user, loginForm);
userlist = userDao.findByLoginIdAndPassword(user);
return userlist;
}
}
--------------------------------------
--------------$B-,(BBeanUtil--------------
package shopping.utils;

import java.lang.reflect.InvocationTargetException;

import org.apache.commons.beanutils.BeanUtils;

public class BeanUtil {

public static void copyProperties(Object dest, Object orig) {
try {
/*copyProperties$B%a%=%C%I$G(Bdest$B!J(BBean$B!K$N%W%m%Q%F%#L>$HF1L>$NMWAG$r(Borig
$B!J(BForm$B!K$+$i$^$H$a$F%;%C%?!<!"%2%C%?!<$9$k!#(B
$B!J(B2$B$DL\$K;XDj$5$l$?%*%V%8%'%/%H$NA4%W%m%Q%F%#$rD4$Y$F$=$NCM$r<h$j=P$7!"(B1
$B$DL\$K;XDj$5$l$?%*%V%8%'%/%H$N!VF1L>!W$N(B
$B%W%m%Q%F%#$K%3%T!<$7$^$9!#(B*/
BeanUtils.copyProperties(dest, orig);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
} catch (InvocationTargetException e) {
throw new RuntimeException(e);
}
}
}
-------------------------------------
---------------$B--(BUser--------------
package shopping.dto;


public class User {

private String userId; //$B%f!<%6!<(BID
private String password; //$B%Q%9%o!<%I(B

public String getUserId() { return userId; }
public String getPassword() { return password; }
public void setUserId(String userId) { this.userId = userId; }
public void setPassword(String password) { this.password = password; }
}
-------------------------------------
------------$B-.(Bshopping.dicon------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN"
"http://www.seasar.org/dtd/components23.dtd">

<components>
<component
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
<property name="autoNaming">
<component
class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/>
</property>
<initMethod name="addClassPattern">
<arg>"shopping.logic"</arg>
<arg>".*LogicImpl"</arg>
</initMethod>
</component>

<component
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
<property name="instanceDef">
@[E-MAIL ADDRESS DELETED]
</property>
<property name="autoNaming">
<component
class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/>
</property>
<initMethod name="addClassPattern">
<arg>"shopping.action"</arg>
<arg>".*ActionImpl"</arg>
</initMethod>
</component>

<component
class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
<property name="autoNaming">
<component
class="org.seasar.framework.container.autoregister.DefaultAutoNaming"/>
</property>
<initMethod name="addClassPattern">
<arg>"shopping.dao"</arg>
<arg>".*DaoImpl"</arg>
</initMethod>
</component>
</components>
----------------------------------------
--------------$B-/(Bapp.dicon-----------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN"
"http://www.seasar.org/dtd/components23.dtd">

<components>
<include path="s2struts.dicon"/>
<include path="shopping/dicon/shopping.dicon"/>
</components>
-----------------------------------



_________________________________________________________________
MSN$BAjCLH"!!%W%l%<%s%H%-%c%s%Z!<%s!#NI2sEz$NCf$+$iCjA*$G(B10$BK|1_#G#e#t!*(B
http://questionbox.jp.msn.com/present/
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://ml.seasar.org/archives/s2struts-dev/attachments/20080820/456a9713/attachment-0001.html>


s2struts-dev メーリングリストの案内