Struts2中Action三种接收参数形式与简单的表单验证功能
作者:小破孩123 时间:2022-11-26 08:55: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三种接收参数形式与简单的表单验证功能网站的支持!
来源:http://www.cnblogs.com/AndroidJotting/p/6516752.html
标签:struts2,表单,验证
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
常用Hash算法(C语言的简单实现)
2021-09-10 05:23:47
详解MyBatis 常用写法
2022-07-14 19:36:14
Java的RxJava库操作符的用法及实例讲解
2021-12-14 22:31:41
C++ 归并排序(merge sort)案例详解
2022-03-23 00:00:00
Android如何判断一个点在不在多边形区域内
2023-07-06 14:06:13
![](https://img.aspxhome.com/file/2023/2/83522_0s.jpg)
redis统计APP在线人数的实例
2023-11-24 23:56:54
Android中EditText和AutoCompleteTextView设置文字选中颜色方法
2022-12-05 04:45:30
![](https://img.aspxhome.com/file/2023/4/125424_0s.png)
100-200之间所有素数求和程序代码(二个版本)
2022-07-03 18:53:58
datagridview实现手动添加行数据
2022-03-29 16:31:09
深入解析Spring Boot 的SPI机制详情
2021-07-09 04:26:49
![](https://img.aspxhome.com/file/2023/5/78365_0s.png)
SpringBoot中的main方法注入service
2021-10-31 15:33:33
详解Java8如何使用Lambda表达式进行比较
2023-12-09 19:27:16
Entity Framework使用ObjectContext类
2023-01-25 16:40:04
![](https://img.aspxhome.com/file/2023/3/85703_0s.png)
c# 获取字符串的字节数的方法
2022-01-17 13:52:50
基于Spring@Autowired注解与自动装配详谈
2022-01-14 09:38:49
SpringCloud Eureka服务注册中心应用入门详解
2022-02-23 08:48:44
![](https://img.aspxhome.com/file/2023/1/79951_0s.png)
Android 数据库打包随APK发布的实例代码
2022-05-12 11:31:15
Android编程单选项框RadioGroup综合应用示例
2022-01-12 19:16:29
![](https://img.aspxhome.com/file/2023/4/87294_0s.jpg)
关于springboot配置文件密文解密方式
2023-11-09 04:21:24
![](https://img.aspxhome.com/file/2023/8/59418_0s.png)
Android Bitmap和Drawable相互转换的简单代码
2022-01-26 11:09:01