Struts开发指南之工作流程

http://tech.ddvip.com   2006年11月25日    社区交流

本文详细介绍Struts开发指南之工作流程

<form-beans>
<!-- Logon form bean -->
 <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>
 <!-- Subscription form bean -->
 <form-bean name="subscriptionForm"type="org.apache.struts.webapp.example.SubscriptionForm"/>
 </form-beans>
 <action-mappings>
 <!-- Edit mail subscription -->
 <action path="/editSubscription"
type="org.apache.struts.webapp.example.EditSubscriptionAction"
attribute="subscriptionForm"
scope="request"
validate="false">
  <forward name="failure" path="/mainMenu.jsp"/>
  <forward name="success" path="/subscription.jsp"/>
 </action>
...

  subscriptionForm 是一个标准的ActionForm,其中reset方法用于清除form的值,validate方法用于验证

public final class SubscriptionForm extends ActionForm {
// The maintenance action we are performing (Create or Edit).
private String action = "Create";
// Should we auto-connect at startup time?
private boolean autoConnect = false;
// The host name.
private String host = null;
private String password = null;
private String type = null;
private String username = null;
public String getAction() { return (this.action); }
public void setAction(String action) { this.action = action; }
public boolean getAutoConnect() { return (this.autoConnect); }
public void setAutoConnect(boolean autoConnect) { this.autoConnect = autoConnect; }
public String getHost() { return (this.host); }
public void setHost(String host) { this.host = host; }
public String getPassword() { return (this.password); }
public void setPassword(String password) { this.password = password; }
public String getType() { return (this.type); }
public void setType(String type) { this.type = type; }
public String getUsername() { return (this.username); }
public void setUsername(String username) { this.username = username; }
/**
* Reset all properties to their default values.
*
* @param mapping The mapping used to select this instance
* @param request The servlet request we are processing
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
 this.action = "Create";
 this.autoConnect = false;
 this.host = null;
 this.password = null;
 this.type = null;
 this.username = null;
}
/**
* Validate the properties that have been set from this HTTP request,
* and return an <code>ActionErrors</code> object that encapsulates any
* validation errors that have been found. If no errors are found, return
* <code>null</code> or an <code>ActionErrors</code> object with no
* recorded error messages.
*
* @param mapping The mapping used to select this instance
* @param request The servlet request we are processing
*/
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
 ActionErrors errors = new ActionErrors();
 if ((host == null) || (host.length() < 1))
  errors.add("host",
  new ActionError("error.host.required"));
 if ((username == null) || (username.length() < 1))
  errors.add("username",
  new ActionError("error.username.required"));
 if ((password == null) || (password.length() < 1))
  errors.add("password",
  new ActionError("error.password.required"));
 if ((type == null) || (type.length() < 1))
  errors.add("type",
  new ActionError("error.type.required"));
 else if (!"imap".equals(type) && !"pop3".equals(type))
  errors.add("type",new ActionError("error.type.invalid", type));
 return (errors);
 }
}

  logonAction

责编:豆豆技术应用

正在加载评论...