Struts2中Action三种接收参数形式与简单的表单验证功能
程序员文章站
2024-03-04 14:14:17
有了前几篇的基础,相信大家对于struts2已经有了一个很不错的认识,本篇我将为大家介绍一些关于action接收参数的三种形式,以及简单的表单验证实现,下面进入正题,首先我...
有了前几篇的基础,相信大家对于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三种接收参数形式与简单的表单验证功能,希望对大家有所帮助