Struts2学习笔记(1) - 简单注册系统

一.简单的注册系统

1.编写欢迎页面 index.jsp -(View)
加入
<meata http-equive="REFRESH" content="1;URL=/RegistrationPage.action" />

意为等待1秒后自从刷新,重定向到URL所指向的地址

2.编写注册页面Registration.jsp -(View)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

<! 使用struts2标记库 >
<%@ taglib prefix="s" URI="struts-tags" %> 

...

<body>

  <! 提交后交给Register动作类处理 >
  <s:form action="Register">    
  <s:textfield name="username" label="Username" />
    <s:password name="password" label="Password" />
    <s:submit />
  </s:form>
</body>
...


3编写User类 -(Model)

public class User {
  private username = "";
  private password = "";

  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }

  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }
}

4.编写注册动作类Register.java -(Model)

import com.opensymphony.xwork2.ActionSupport; 
//ActionSupport类提供excute()和validate方法,excute()该方法用于完成注册用户的业务逻辑,validate()方法用于完成注册用户信息的验证逻辑

public class Register extends ActionSupport {
  public String excute() {
    getUserTable().addUser(user);
    return SUCCESS;
  }

  private User user;

  public UserTable getUserTable() {
    return new UserTable();
  }

  public User getUser() {
    return user;
  }

  public void setUser(User user) {
    this.user = user;
  }

  //addFieldError()方法用于存储错误信息.该方法由interface ValidationAware提供,此接口已由ActionSupport实现
  //getText()方法用于获取属性文件中的关键字对应信息.该方法由interface TextProvider提供,此接口已由ActionSupport实现

  public void validate() {
    if (getUser().getPassword().length() == 0) {
      addFieldError("password", getText("password.required"));
    }

    if (getUser().getUsername().length() == 0)) {
      addFieldError("username", getText("username.required"));
    }
  }
}


5.编写Register动作相关联的属性文件 Register.properties
 
username.required = Username is required.
  password.required = Password is required.


6.部署sturts.xml

<!-- struts.devMode可以使struts2工作在开发模式下.
  这样可以在不重新装载应用的前提下实现 
‹ 1.在请求之间自动重新载入struts.xml文件的信息。
‹ 2.在请求之间自动重新载入资源文件。 
‹ 3.在请求之间自动重新载入校验文件。
  工作在开发模式下,Struts2可以输出更多的运行时的调试信息,这样有
助于跟踪调试程序。 --> 

  <constant name="struts.devMode" value="true" />

  <!-- namespace是包的逻辑地址.在此包下所有配置的action前均会加上这个逻辑地址.extends表示扩展了struts-default包,这样就可以使用struts2中的特性了(截拦器等等) -->
  <package name="default" namespace="/" extends="struts-default">
    
    <action name="RegistrationPage">
      <result>/Registration.jsp</result>
    </action>

  <!-- name="inpput"属性用来对应addFiledError()方法加入的错误信息.当截拦器在执行验证逻辑时找到错误信息时.就会返回input关键字.触发动作在执行excute()之前重定向到Registration.sjp -->

    <action name="Register" class="com.vea.Register">
      <result>/RegistrationSuccess.jsp</result>
      <result name="input">/Registration.jsp</result>
    </action>  

  </package>    
 

你可能感兴趣的:(java,工作,jsp,xml,struts)