搭建structs(2)

搭建环境如下:
操作系统:win7 64bit
JDK: 1.7.0_67 for 64bit
MyEclipse:MyEclipse 2014
MySql: mysql server 5.0
JDBC: mysql-connector-java-5.1.18-bin.jar
structs: structs-2.3.31
Hibernate:hibernate-release-4.3.10.Final
Spring: spring-framework-4.0.0.RELEASE
1、
(1) 首先要完成JDK配置正确,myEclipse能正常运行。
(2) 在MyElipse下创建Dynamic Web Project(这个选项在File-new-others-web下),输入正确的工程名称如SSHtest,设置工程的workspce,取消EARmembership的勾选,其他不变,点击Finish.
(3) 拷贝相应的structs包到工程下,首先将structs-2.3.31->app->WEB-INF->lib下的13个jar包拷贝到新建工程的WebRoot->WEB-INF->lib目录下;在将structs-2.3.31->app->WEB-INF目录下的web.xml中的:
这里写图片描述
代码段复制到WebRoot->WEB-INF下的web.xml文件中。
2、建立工程代码
首先在工程下创建相应的包有:
com.zwl.ssh.action
com.zwl.ssh.forms
com.zwl.ssh.service
com.zwl.ssh.serviceImp
以上包名可以自定义。
2.1 structs.xml
在工程->src下创建structs.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="zwl" extends="struts-default">
        <action name="register" class="com.zwl.ssh.action.RegisterAction">
            <result name="input">/Register.jsp</result>
            <result name="success">/Success.jsp</result>
            <result name="error">/Fail.jsp</result>
        </action>
    </package>

</struts>

该xml文件用于控制用户逻辑结果

2.2 创建相应的代码
在com.zwl.ssh.action包下创建RegisterAction.java代码如下:

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 {
            userManager.regUser(user);
            return SUCCESS;

        } catch (Exception e) {
            e.printStackTrace();
            return ERROR;
        }
        }

}

该类主要是实现用户的Action的逻辑处理,并得到一定的返回信息,通过返回信息和已经定义在struct.xml文件中的Action映射信息,就可以得到相应的forword页面。
2.3 RegisterAction-validation.xml(验证文件,
在com.zwl.ssh.action内创建,名字定义与上面的类相互对应)。该xml文件主要用户对用户输入在JSP页面中的数据进行一定的校验。(相当于数据的前端限制)

<?xml version="1.0" encoding="GBK"?>
<!-- 版本不一致 选择下面两个的一个 -->
<!-- 
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN"
    "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
 -->
<!DOCTYPE validators PUBLIC
        "-//Apache Struts//XWork Validator 1.0.2//EN"
        "http://struts.apache.org/dtds/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="regex"><![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="regex"><![CDATA[(\w{6,16})]]></param>
            <message>密码输入不合法,必须为长度在6~16之间的数字或者字母</message>
        </field-validator>
    </field>
</validators>

2.4 UserForm.java
在com.zwl.ssh.forms报下创建该类,该类主要用于表示用户数据,有username,password,gender.

package com.zwl.ssh.forms;

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;
    }
}

2.5 UserManager.java
在com.zwl.ssh.service包下创建该接口,该接口是定义了业务实现的方法。

public interface UserManager {

    public void regUser(UserForm user);

}

2.6 UserManagerImpl.java
在包com.zwl.ssh.serviceImpl下创建该类,该类用于实现业务。

public class UserManagerImpl implements UserManager {

    @Override
    public void regUser(UserForm user) {

    }

}

在Structs阶段可以暂时不实现数据的处理及存储过程。
2.7 三个主要的JSP页面
在WebRoot下分别创建Fail.jsp,Register.jsp, Success.jsp。主要说明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>  

2.7最终的层次结构如下图,忽略下图中的com.zwl.ssh.beans和com.zwl.ssh.dao以及com.zwl.ssh.daoImpl包,便是本文中Structs的结构层次图。
这里写图片描述
这里写图片描述

  1. 运行结果
    这里写图片描述
    这里写图片描述
    这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值