SSH之Struts(三)

创建Struts项目

创建工程

  1. 在Eclipse中创建一个Dynamic Web Project,本文项目名称为SSHProject。
  2. 把Struts内apps文件夹下的struts2-blank war包用压缩工具解压,然后把WEB-INF/lib内的jar包和WEB-INF下的web.xml文件分别复制到SSHProject项目下的WEB-INF/lib内和WEB-INF下。
  3. 在src目录下创建相应package。
  4. 在WebContent下创建Register.jsp文件,并分别创建注册成功和注册失败的Success.jsp和Fail.jsp。

操作完成后的结构如图所示:

编写代码

web.xml的内容。
<?xml version="1.0" encoding="UTF-8"?>  
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  
    <display-name>SSH Project</display-name>  
  
    <filter>  
        <filter-name>SSH</filter-name>  
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
    </filter>  
  
    <filter-mapping>  
        <filter-name>SSH</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  
  
    <welcome-file-list>  
        <welcome-file>index.html</welcome-file>  
    </welcome-file-list>  
  
</web-app> 

Register.jsp的内容
<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>  
<%@ taglib prefix="s" uri="/struts-tags"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>User Register Page</title>  
</head>  
<body>  
  
    <s:form action="register">  
        <s:textfield name="user.username" label="用户名"></s:textfield>  
        <s:password name="user.password" label="密码"></s:password>  
        <s:select list="#{'1':'男','0':'女'}" listKey="key" listValue="value"  
            name="user.gender" label="性别" value="1"></s:select>  
        <s:submit value="注册"></s:submit>  
    </s:form>  
  
</body>  
</html>  

用户表单类UserForm.java的内容。
package com.ynwi.ssh.beans;  
  
public class UserForm {  
  
    private String username;  
    private String password;  
    private int gender;  
  
    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;  
    }  
  
    public int getGender() {  
        return gender;  
    }  
  
    public void setGender(int gender) {  
        this.gender = gender;  
    }  
  
}  

注册Action类RegisterAction.java的内容。
package com.ynwi.ssh.action;  
  
import com.opensymphony.xwork2.ActionSupport;  
import com.ynwi.ssh.beans.UserForm;  
import com.ynwi.ssh.service.UserManager;  
import com.ynwi.ssh.serviceImpl.UserManagerImpl;  
  
public class RegisterAction extends ActionSupport {  
  
    private static final long serialVersionUID = 1L;  
  
    private UserForm user;  
  
    private UserManager userManager;  
  
    public UserForm getUser() {  
        return user;  
    }  
  
    public void setUser(UserForm user) {  
        this.user = user;  
    }  
  
    public UserManager getUserManager() {  
        return userManager;  
    }  
  
    public void setUserManager(UserManager userManager) {  
        this.userManager = userManager;  
    }  
  
    public String execute() {  
        try {  
            this.setUserManager(new UserManagerImpl());  
            userManager.regUser(user);  
            return SUCCESS;  
  
        } catch (Exception e) {  
            e.printStackTrace();  
            return ERROR;  
        }  
    }  
  
}  

验证文件RegisterAction-validation.xml的内容。该xml文件为RegisterAction的验证文件,命名格式固定,为< ActionName >-validation.xml。
<?xml version="1.0" encoding="GBK"?>  
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"  
    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">  
  
<validators>  
    <!-- 添加对用户名的校验 -->  
    <field name="user.username">  
        <field-validator type="requiredstring">  
            <param name="trim">true</param>  
            <message>用户名不能为空</message>  
        </field-validator>  
        <field-validator type="regex">  
            <param name="expression"><![CDATA[(\w{6,16})]]></param>  
            <message>用户名输入不合法,必须为长度在6~16中间的数字或字母</message>  
        </field-validator>  
    </field>  
      
    <!-- 添加对密码的校验 -->  
    <field name="user.password">  
        <field-validator type="requiredstring">  
            <param name="trim">true</param>  
            <message>密码不能为空</message>  
        </field-validator>  
        <field-validator type="regex">  
            <param name="expression"><![CDATA[(\w{6,16})]]></param>  
            <message>密码输入不合法,必须为长度在6~16之间的数字或者字母</message>  
        </field-validator>  
    </field>  
</validators>  

业务逻辑接口UserManaer.java的内容。
package com.ynwi.ssh.service;  
  
import com.ynwi.ssh.beans.UserForm;  
  
public interface UserManager {  
  
    public void regUser(UserForm user);  
  
}  

业务逻辑实现类UserManagerImpl.java的内容
package com.ynwi.ssh.serviceImpl;  
  
import com.ynwi.ssh.beans.UserForm;  
import com.ynwi.ssh.service.UserManager;  
  
public class UserManagerImpl implements UserManager {  
  
    @Override  
    public void regUser(UserForm user) {  
          
    }  
  
}  

配置文件struts.xml的内容。
<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE struts PUBLIC  
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
    "http://struts.apache.org/dtds/struts-2.0.dtd">  
  
<struts>  
  
    <include file="struts-default.xml" />  
    <package name="ynwi" extends="struts-default">  
        <action name="register" class="com.ynwi.ssh.action.RegisterAction">  
            <result name="input">/Register.jsp</result>  
            <result name="success">/Success.jsp</result>  
            <result name="error">/Fail.jsp</result>  
        </action>  
    </package>  
  
</struts>  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值