一.前端 :登陆页面

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
   
  </head>
  <body>
  <html:errors/>

<form action="loginAction.do" method="post"> 
    请您登陆,输入用户名和密码 <br>
    用户名:<input type="text" name="username"><html:errors property="user.username.null"/><br/>
    密码 :<input type="text" name="password"><html:errors property="user.password.null"/><br/>
    <input type="submit" value="提交">&nbsp;<input type="reset" value="重置"><br>
    </form>
  </body>
</html>

后台步骤:

一。Action类
1. extends DispatchAction;

2.重写ActionForward execute方法

Users user=(Users)form;//强制类型转换
 return mapping.findForward("SUCCESS");

action类如下:

package com.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.entity.Users;
public class LoginAction extends DispatchAction{
 public ActionForward execute(ActionMapping mapping,ActionForm form,
   HttpServletRequest request,HttpServletResponse response)
 throws Exception{
  Users user=(Users)form;
  return mapping.findForward("SUCCESS");
 }
}

二。实体类extends ActionForm如下:

package com.entity;

import org.apache.struts.action.ActionForm;

public class Users extends ActionForm{
 private String username;
 private String 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;
 }
 
}

三。配置struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>
  <form-beans>
  <form-bean name="users" type="com.entity.Users">
  </form-bean>
  </form-beans>
 
  <global-exceptions/>
  <global-forwards />

<action-mappings>
   <action path="/loginAction" type="com.action.LoginAction" name="users">
   <forward name="SUCCESS" path="/success.jsp"></forward>
   </action>
   </action-mappings>

</struts-config>

---------------------------------------------------------------------------------------------------------------------------------------

验证的两种方式

方法一。实体类继承ActionForm并重写验证方法

1.实体Users类如下:

package com.entity;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

public class Users extends ActionForm{
 private String username;
 private String 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;
 }
 public ActionErrors validate(ActionMapping mapping,
            javax.servlet.http.HttpServletRequest request){
  ActionErrors error=new ActionErrors();//继承自ActionMessages类,信息集合
  if(this.getUsername()==null||this.getUsername().trim().equals("")){
   error.add("user.username.null", new ActionMessage("user.username.null"));
  }
  if(this.getPassword()==null||this.getPassword().trim().equals("")){
   error.add("user.password.null", new ActionMessage("user.password.null"));
  }
  
  return  error;
  
 }
 
}

2.LoginAction类

public class LoginAction extends DispatchAction{
 public ActionForward execute(ActionMapping mapping,ActionForm form,
   HttpServletRequest request,HttpServletResponse response)
 throws Exception{
  
  return mapping.findForward("SUCCESS");
 }
}

方法二.Action类中写验证

LoginAction类代码如下:

public class LoginAction extends DispatchAction{
 public ActionForward execute(ActionMapping mapping,ActionForm form,
   HttpServletRequest request,HttpServletResponse response)
 throws Exception{
  Users user=(Users)form;
  ActionMessages messages=new ActionMessages();//信息集合
  if(user.getUsername()==null||user.getUsername().trim().equals("")){
   messages.add("user.username.null", new ActionMessage("user.username.null"));//国际化
   //this.addErrors(request, messages);
   //return mapping.findForward("INPUT");
  }
  if(user.getPassword()==null||user.getPassword().trim().equals("")){
   messages.add("user.password.null", new ActionMessage("user.password.null"));
   //this.addErrors(request, messages);
   //return mapping.findForward("INPUT");
  }
  if(messages.size()>0){
   this.addErrors(request, messages);
   return mapping.getInputForward();
   //return mapping.findForward("INPUT");
   
  }
  return mapping.findForward("SUCCESS");
 }
}

3.struts-config.xml中<action>内容修改如下:

<action input="/index.jsp" path="/loginAction" type="com.action.LoginAction" name="users">
   <forward name="SUCCESS" path="/success.jsp"></forward>
   </action>

第一个Struts1步骤的更多相关文章

  1. pig里面没有if:不能判断一个条件后决定一个执行步骤

    pig是处理流 的工具,所以数据集是流对象,处理步骤也是一样的. Pig中存在按条件处理流对象的方式有 1)filter X= FILTER A BY (f1 == 8); 2)CASE WHEN T ...

  2. 完整的开发一个ContentProvider步骤

    1.定义自己的ContentProvider类,该类需要继承Android提供的ContentProvider基类.2.向Android系统注册这个"网站",也就是在Android ...

  3. python 创建一个实例:步骤一 编写一个构造函数

    编写一个构造函数 #在python中,person 类的第一件是就是记录关于人员的基本信息,这叫做实例对象属性,并且它们通常通过给类方法函数中的self 属性赋值来创建. #赋给实力属性第一个值得通常 ...

  4. appium+python 启动一个app步骤

    询问度娘搭好appium和python环境,开启移动app自动化的探索(基于Android),首先来记录下如何启动待测的app吧! 如何启动APP?1.获取包名:2.获取launcherActivit ...

  5. [SoapUI] 从上一个测试步骤获取ID list,通过Groovy脚本动态生成 Data Source 供后面的步骤使用

    https://support.smartbear.com/readyapi/docs/testing/data-driven/types/groovy.html 从官网拷贝code到SoapUI里面 ...

  6. python 创建一个实例:步骤二 添加行为方法,编写方法

    添加方法 class Person(): def __init__(self,name,job=None,pay=0): self.name= name self.job = job self.pay ...

  7. ystep jQuery流程、步骤插件

    今天小菜给大家带来又一款给力jQuery插件:ystep. 从名称上大致可以看出,这是一个流程步骤插件. 如果无意外的话,这可能是小菜近期最后一个作品了...苦逼的小菜即将创业,可能就没时间折腾啦~好 ...

  8. 多步骤多分步的组件StepJump

    最近的工作在做一个多步骤多分步的表单页面,这个多步骤多分步的意思是说这个页面的业务是分多个步骤完成的,每个步骤可能又分多个小步骤来处理,大步骤之间,以及小步骤之间都是一种顺序发生的业务关系.起初以为这 ...

  9. SOAPUI使用教程-创建MockResponse步骤

    MockResponse测试步骤监听一个SOAP请求并返回一个预先配置的响应,然后再继续. 传入的请求的能被断言检查. 这种TestStep使用场景是例如: 客户端测试,验证传入的请求并返回假或不正确 ...

随机推荐

  1. Laxcus大数据管理系统单机集群版

    Laxcus大数据管理系统是我们Laxcus大数据实验室历时5年,全体系全功能设计研发的大数据产品,目前的最新版本是2.1版本.从三年前的1.0版本开始,Laxcus大数据系统投入到多个大数据和云计算 ...

  2. 自动化测试selenium+java 环境搭建

    1.开发环境: a:安装jdk,配置java的环境变量 b:安装eclipse 工具.火狐浏览器(低版本) 2.下载selenium包 selenium-java-2.44.0.jar seleniu ...

  3. Linux学习笔记——切换并取代用户身份命令——su

        再次从头好好的学习Linux,本着以免轻易忘记,以备后用的原则,将我觉得常用或者好玩的linux命令记录在这,注意:我的实验环境是 Ubuntu 14.04.1 su 这个命令我经常使用,因为 ...

  4. Linux学习笔记——使用指定的用户权限执行程序——sudo

          sudo可以用来以其他用户身份执行命令,sudo命令可以针对单个命令授予临时权限.sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性. 1:sudo的帮助信息如下: ...

  5. ORacle初级题

    一. 选择(每题1分,共15分) 1.在linux系统中,可以通过以下命令查看内核版本(). * A.who B.hostname C.uname -r D.release 2.登入linux系统后, ...

  6. 【JavaScript】常用方法

    Jquery选择器参考:http://www.w3school.com.cn/jquery/jquery_selectors.asp 获取class="a"元素点击: $(&quo ...

  7. 学习打造自己的DEBUG_NEW

    学习范例http://www.cppblog.com/Robertxiao/archive/2012/11/05/194547.html 在使用MFC库开发程序时,我非常喜欢MFC框架中的内存泄漏诊断 ...

  8. Fastcgi介绍和php中fastcgi的应用

    先看下FastCgi的一些解释: CGI全称是“通用网关接口”(Common Gateway Interface), 它可以让一个客户端,从网页浏览器向执行在Web服务器上的程序请求数据. CGI描述 ...

  9. 数据库记录转换成json格式 (2011-03-13 19:48:37) (转)

    http://blog.sina.com.cn/s/blog_621768f30100r6v7.html 数据库记录转换成json格式 (2011-03-13 19:48:37) 转载▼ 标签: 杂谈 ...

  10. Google上的Cookie Matching

    Cookie Matching This guide explains how the Cookie Matching Service enables you to make more effecti ...