当前位置: 移动技术网 > IT编程>开发语言>Java > Struts2中Action三种接收参数形式与简单的表单验证功能

Struts2中Action三种接收参数形式与简单的表单验证功能

2019年07月22日  | 移动技术网IT编程  | 我要评论

有了前几篇的基础,相信大家对于struts2已经有了一个很不错的认识,本篇我将为大家介绍一些关于action接收参数的三种形式,以及简单的表单验证实现,下面进入正题,首先我们一起先来了解一下最基本的action接收参数的形式,直接在我们的action类中添加成员变量,这样就可以完成action接收参数的操作,具体内容详见代码展示:

  这里我们以登录验证为例,进行代码展示,首先是我们的action类:

/***
 * 最基本的接收参数形式
 * @author jho
 * http://localhost:8080/struts3/index!login?name="123"&password="456"
 */
@suppresswarnings("serial")
public class user extends actionsupport {
  private string name;
  private int pwd;
  public string getname() {
    return name;
  }
  public void setname(string name) {
    this.name = name;
  }
  public int getpwd() {
    return pwd;
  }
  public void setpwd(int pwd) {
    this.pwd = pwd;
  }
  public string login(){
    system.out.println("name="+name+" pwd="+pwd);
    if(123456==pwd){
      return success;
    }else{
      return error;
    }
  }
}

  下面我们一起来看一下action的第二种接收参数的形式,通过user类对象来完成整个的参数接收,首先我们创建一个user类:

public class user {
  private string name;
  private string password;
  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;
  }
}

  然后通过user对象在action中进行用户提交参数的接收:

/***
 * dormain model
 * @author jho
 * http://localhost:8080/struts4/index!login?user.name="123"&user.password="456"
 */
@suppresswarnings("serial")
public class useraction extends actionsupport {
  private user user;
  public user getuser() {
    return user;
  }
  public void setuser(user user) {
    this.user = user;
  }
  public string login(){
    system.out.println("name="+user.getname()+" pwd="+user.getpassword());
    return success;
  }
}

  最后是通过struts的modeldriven<user>来进行用户参数的接收,第一步创建我的user类对象,第二部配置我们的action:

/***
 * model driven
 * @author jho
 * http://localhost:8080/struts5/index!login?name="123"&password="456"
 */
@suppresswarnings("serial")
public class useraction extends actionsupport implements modeldriven<user>{
  private user user = new user();
  public string login(){
    system.out.println("name="+user.getname()+" pwd="+user.getpassword());
    return success;
  }
  public user getmodel() {
    return user;
  }
}

  所谓modeldriven,意思是直接把实体类当成页面数据的收集对象。

  对于简单的表单验证知识,就为大家介绍一下addfielderror()方法:

@suppresswarnings("serial")
public class inputerrorfilter extends actionsupport{
  private string name;
  public string getname() {
    return name;
  }
  public void setname(string name) {
    this.name = name;
  }
  @override
  public string execute() throws exception {
    return success;
  }
  public string login(){
    system.out.println(name+"");
    if(name!=null && name.equals("hpu")){
      return success;
    }else{
      this.addfielderror("nameerror", "用户名输入有误");
      this.addfielderror("nameerror", "ul li形式输出错误信息");
      return error;
    }
  }
}

  我们的错误处理页面:

<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>
<%
string path = request.getcontextpath();
string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/";
%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
 <head>
  <base href="<%=basepath%>" rel="external nofollow" >
  <title>my jsp 'error.jsp' starting page</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">  
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="this is my page">
  <!--
  <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
  -->
 </head>
 <body>
      操作失败 <br>
      输入参数:<s:text name="name" /><br/>
    <s:fielderror fieldname="nameerror" theme="simple"/><br/>
    <s:property value="errors.nameerror[0]"/><br/>
    <s:debug></s:debug>
 </body>
</html>

以上所述是小编给大家介绍的struts2中action三种接收参数形式与简单的表单验证功能,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网