时间:2021-05-20
有了前几篇的基础,相信大家对于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三种接收参数形式与简单的表单验证功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Struts中的Action单例与多例详解struts2中action是多例的,即每次访问网络地址的时候都会产生一个actionpublicclasspr_ac
详解Struts2中Action访问ServletAPI的几种方法在通常的web开发中Request和Response对象比较常见,但在Struts2框架中由于
XXX平台要实现一个功能,公告弹出页面上使用复选框设置不再通知此类公告。原理:,checkbox选中后提交表单,那么struts2的Action中isSelec
实现了Action处理类之后,就可以在struts.xml中配置该Action,从而让Struts2框架知道哪个Action处理哪个请求,即建立用户请求和Act
使用这种方式也需要通过请求参来来指定要执行的动作。请求参数名的格式为 action!method.action 注:由于Struts2只需要参数名,因此,参