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接口