夜雨竹林
落叶无声
Struts 注册、登陆、email实例解析

web.xml

1.      <servlet>
         <servlet-name>action</servlet-name>
         <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
         <init-param>
         <param-name>config</param-name>
         <param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-config-registration.xml</param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
      </servlet>

2.   <taglib>
    <taglib-uri>/WEB-INF/app.tld</taglib-uri>
    <taglib-location>/WEB-INF/app.tld</taglib-location>
  </taglib>

struts-config.xml

1. <form-beans>

    <form-bean  name="logonForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="username" type="java.lang.String"/>
<form-property name="password" type="java.lang.String"/>
</form-bean>

2. <global-forwards>

     <forward  name="logoff"  path="/logoff.do"/>
<forward  name="logon"  path="/logon.jsp"/>
<forward  name="success"  path="/mainMenu.jsp"/>
</global-forwards>

3. <action-mappings>

       ………………
<action  path="/tour"  forward="/tour.htm"> </action>
………………
</action-mappings>

4. <controller>

        <set-property property="inputForward" value="true"/>
</controller>

5. <message-resources parameter="zwd_10.ApplicationResources"/>

     <message-resources parameter="org.apache.struts.webapp.example.AlternateApplicationResources"  key="alternate">
</message-resources>

6. <plug-in className="org.apache.struts.plugins.ModuleConfigVerifier"/>

    <plug-in className="zwd_10.memory.MemoryDatabasePlugIn">
<set-property property="pathname" value="/WEB-INF/database.xml"/>
</plug-in>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property

property="pathnames" value="/WEB-INF/validator-rules.xml,

        /WEB-INF/validation.xml"/>
</plug-in>

struts-config-registration.xml

定义Registration的有关操作:

1.form-bean: registrationForm

2.global-forwards:

   <forward   name="registration"  path="/registration.jsp"/>

3.action-mappings:

   <action  path="/editRegistration"
type="zwd_10.EditRegistrationAction"
attribute="registrationForm"
scope="request"
validate="false">
<forward name="success"  path="/registration.jsp"/>
</action>
   <action  path="/saveRegistration"
type="zwd_10.SaveRegistrationAction"
name="registrationForm"
scope="request"
input="registration"/>

Java文件内容

1. Constants:// 常量类

        public final class Constants {
public static final String Package = "zwd_10";
public static final String DATABASE_KEY = "database";
public static final String SUBSCRIPTION_KEY = "subscription";
public static final String USER_KEY = "user";             }

2. User:// 接口

     public interface User {
public UserDatabase getDatabase();
public String getFromAddress();
public void setFromAddress(String fromAddress);
public String getFullName();
public void setFullName(String fullName);
public String getPassword();
public void setPassword(String password);
public String getReplyToAddress();
public void setReplyToAddress(String replyToAddress);
public Subscription[ ] getSubscriptions();
public String getUsername();
public Subscription createSubscription(String host);
public Subscription findSubscription(String host);
public void removeSubscription(Subscription subscription);          }
MemoryUser://实现User接口

3. UserDatabase:// 接口

       public interface UserDatabase {
public User createUser(String username);
public void close() throws Exception;
public User findUser(String username);
public User[ ] findUsers();
public void open() throws Exception;
public void removeUser(User user);
public void save() throws Exception;             }
MemoryUserDatabase://实现MemoryUserDatabase接口

4. Subscription:// 接口

       public interface Subscription {
public boolean getAutoConnect();
public void setAutoConnect(boolean autoConnect);
public String getHost();
public String getPassword();
public void setPassword(String password);
public String getType();
public void setType(String type);
public User getUser();
public String getUsername();
public void setUsername(String username);               }
MemorySubscription://实现MemoryUserDatabase接口

5. MemoryDatabasePlugIn://实现PlugIn接口,在struts-config.xml中有说明

app.tld(自定义的标签库)

1. 声明CheckLogonTag ―――― 对应CheckLogonTag.java

  CheckLogonTag:// extends TagSupport接口

2. 声明LinkSubscriptionTag ―――― 对应LinkSubscriptionTag.java

  LinkSubscriptionTag:// extends TagSupport接口

3. 声明LinkUserTag ―――― 对应LinkUserTag.java

  LinkUserTag:// extends TagSupport接口

registration部分

Image:struts example-1.jpg

logon部分

Image:struts example-2.jpg

logoff部分

Image:struts example-3.jpg

subscription部分

Image:struts example-4.jpg

posted on 2008-06-26 10:28  夜雨竹林  阅读(1077)  评论(0编辑  收藏  举报