通过两个小实例去加深对Struts2框架的理解,以便更好地把握它的流程
Struts标签下的用户注册
第一步:创建动态项目,加入相关类包
第二步:在web.xml文件中注册Struts2提供的StrutsPrepareAndFilter过滤器
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- Struts2过滤器 -->
<filter>
<!-- 过滤器名称 -->
<filter-name>struts2</filter-name>
<!-- 过滤器类 -->
<!-- 注册Struts2提供的StrutsPrepareAndExecuteFilter过滤器 -->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- Struts2过滤器映射 -->
<filter-mapping>
<!-- 过滤器名称 -->
<filter-name>struts2</filter-name>
<!-- 过滤器映射 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>第三步:创建index.jsp主页(通过struts2提供的表单标签编写用户注册表单)
<h2>用户注册</h2>
<s:form action="userAction" method="post">
<s:textfield name="name" label="用户名" required="true" requiredposition="left"></s:textfield>
<s:password name="password" label="密码" required="true" requiredposition="left"></s:password>
<s:radio name="sex" list="#{1 : ‘男‘, 0 : ‘女‘}" label="性别" required="true" requiredposition="left"></s:radio>
<s:select list="{‘请选择地区‘,‘广州‘,‘深圳‘,‘佛山‘,‘茂名‘}" name="area" label="地区"></s:select>
<s:checkboxlist list="{‘足球‘,‘羽毛球‘,‘乒乓球‘,‘篮球‘}" name="hobby" label="爱好"></s:checkboxlist>
<s:textarea name="description" cols="30" rows="5" label="描述"></s:textarea>
<s:submit value="注册"></s:submit>
<s:reset value="重置"></s:reset>
</s:form>第四步:创建注册后的返回页面success.jsp
<div> <ul> <li>用户名:<s:property value="name"/></li> <li>密码:<s:property value="password"/></li> <li>性别:<s:if test="sex==0">女</s:if><s:else>男</s:else></li> <li>地区:<s:property value="area"/></li> <li>爱好:<s:property value="hobby"/></li> <li>描述:<s:property value="description"/></li> </ul> </div>
第五步:创建UserAction类,继承于ActionSupport类,作用是对用户注册请求及用户信息编辑请求处理
public class UserAction extends ActionSupport{
private static final long serialVersionUID = 1L;
// 用户名
private String name;
// 密码
private String password;
// 描述
private String description;
// 性别
private int sex = 0;
// 省份
private String area;
// 爱好
private String[] hobby;
// 用户注册
public String execute() throws Exception {
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public String[] getHobby() {
return hobby;
}
public void setHobby(String[] hobby) {
this.hobby = hobby;
}
}第六步:创建配置文件Struts.xml,在该文件中配置UserAction对象(要放在src文件夹下)
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- 声明变量(开发模式) -->
<constant name="struts.devMode" value="true" />
<!-- 声明包 -->
<package name="myPackge" extends="struts-default">
<!-- 创建TagAction的映射 -->
<action name="userAction" class="com.lxy.UserAction">
<!-- 注册成功的返回页面 -->
<result>success.jsp</result>
</action>
</package>
</struts>最后运行效果如下:
输入注册信息
注册成功
Struts2标签下使用验证框架对数据校验
第一步:创建动态项目,加入相关类包
第二步:在web.xml文件中注册Struts2提供的StrutsPrepareAndFilter过滤器
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- Struts2过滤器 -->
<filter>
<!-- 过滤器名称 -->
<filter-name>struts2</filter-name>
<!-- 过滤器类 -->
<!-- 注册Struts2提供的StrutsPrepareAndExecuteFilter过滤器 -->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- Struts2过滤器映射 -->
<filter-mapping>
<!-- 过滤器名称 -->
<filter-name>struts2</filter-name>
<!-- 过滤器映射 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>第三步:创建用户登录的Action对象UserAction,并配置到Struts.xml中
public class UserAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private String username;// 用户名
private String password;// 密码
// 用户登录
@Override
public String execute() throws Exception {
return SUCCESS;
}
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;
}
}Struts.xml
<struts>
<!-- 声明包 -->
<package name="myPackge" extends="struts-default">
<!-- 配置UserAction -->
<action name="userAction" class="com.lxy.UserAction">
<!-- 用户登录页面 -->
<result name="input">/login.jsp</result>
<!-- 注册成功页面 -->
<result>/success.jsp</result>
</action>
</package>
</struts>第四步:创建用户登录页面login.jsp(通过Struts表单标签创建)
<s:form action="userAction" method="post">
<s:textfield name="username" label="用户名" required="true" requiredposition="left"></s:textfield>
<s:password name="password" label="密码" required="true" requiredposition="left"></s:password>
<s:submit key="submit" value="登录"></s:submit>
</s:form>第五步:创建success.jsp
<h2>
<s:property value="username"/>,登录成功
</h2>第六步:编写用户验证文件UserAction-validation.xml(必须放在UserAction所在包中)
<validators>
<!-- 验证用户名 -->
<field name="username">
<field-validator type="requiredstring">
<message>请输入用户名</message>
</field-validator>
</field>
<!-- 验证密码 -->
<field name="password">
<field-validator type="requiredstring">
<message>请输入密码</message>
</field-validator>
</field>
</validators>最后运行效果如下:
登录
成功登录
本文出自 “好记性,不如烂笔头” 博客,请务必保留此出处http://lixiyu.blog.51cto.com/4136883/1355303
原文:http://lixiyu.blog.51cto.com/4136883/1355303