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>