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

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 8月 20日 (水) 17:51:37 JST


$BCfB<(B(taedium)$B$G$9!#(B

$B$3$3$O3+H/<TMQ$N%a!<%j%s%0%j%9%H$G$9$N$G!"(B
[E-MAIL ADDRESS DELETED]
$B$KEj9F$7$F$$$?$@$1$J$$$G$7$g$&$+!)(B

$B%a!<%j%s%0%j%9%H$X$NEPO?$O$3$3$+$i$G$-$^$9!#(B
https://ml.seasar.org/mailman/listinfo/seasar-user

$B$^$?!"4]?t;z$r4^$^$J$$$h$&$K$7$F$/$@$5$$!#(B
Web$B$GI=<($5$;$k$HJ8;z2=$1$7$F$7$^$$$^$9$N$G!#(B
http://ml.seasar.org/archives/s2struts-dev/2008-August/000071.html

$B$h$m$7$/$*4j$$$7$^$9!#(B

> $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/

-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>



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