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%>"> <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">
--> </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三种接收参数形式与简单的表单验证的更多相关文章
- Struts中Action三种接收参数的方式?
前言: 前面已经有一篇随笔介绍了Struts2的大概原理.本文就Struts2中Action与jsp页面进行数据对接时介绍几种常见方法! 值栈ValueStack 3个Action Action1 p ...
- 参数对象Struts2中Action的属性接收参数
题记:写这篇博客要主是加深自己对参数对象的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢. Action中三种传递并接受参数: 1. 在Action添加成员属性接受参数 例如请求的 ...
- JQuery插件使用之Validation 快速完成表单验证的几种方式
JQuery的Validation插件可以到http://plugins.jquery.com/上去下载.今天来分享一下,关于这个插件的使用. 简易使用 这第一种方式可谓是傻瓜式的使用,我们只需要按照 ...
- Struts2获取request三种方法
Struts2获取request三种方法 struts2里面有三种方法可以获取request,最好使用ServletRequestAware接口通过IOC机制注入Request对象. 在Actio ...
- [教程]Delphi 中三种回调函数形式解析
Delphi 支持三种形式的回调函数 全局函数这种方式几乎是所有的语言都支持的,类的静态函数也可以归为此类,它保存的只是一个函数的代码起始地址指针( Pointer ).在 Delphi 中声明一般为 ...
- 01_7_Struts_用Action的属性接收参数
01_7_Struts_用Action的属性接收参数 1. 配置struts.xml文件 <package name="user" namespace="/user ...
- 第三百一十一节,Django框架,Form表单验证
第三百一十一节,Django框架,Form表单验证 表单提交 html <!DOCTYPE html> <html lang="en"> <head& ...
- struts2官方 中文教程 系列六:表单验证
先贴个本帖的地址,以免被爬:struts2教程 官方系列六:表单验证 即 http://www.cnblogs.com/linghaoxinpian/p/6906720.html 下载本章节代码 介 ...
- Validate表单验证插件之常用参数介绍
Validate常用的一些参数和方法 1.errorElement 修改显示错误提示信息的HTML标签.默认是<label>,可以指定为<span>.... $("# ...
随机推荐
- pycharm环境下:同文件夹下文件(.py)之间的调用,出现红线问题
只要将pycharm下打开项目后: 将你运行文件(.py)的项目设置为根目录,就不会出现红色线:
- spark LinearRegression 预测缺失字段的值
最近在做金融科技建模的时候,字段里面很多缺少值得时候,模型对于新用户的预测会出现很大的不稳定,即PSI较大的情况. 虽然我们依据字段IV值得大小不断的在调整字段且开发新变量,但是很多IV值很大的字段直 ...
- MathType让矩阵中的小数以小数点对齐的教程
用MathType编辑公式时,有很多模板都可以应用,并且这些模板并不是只有一种用途,比如矩阵.矩阵模板可以用来编辑矩阵也可是用来编辑一些需要排列组合的数据等等.在用MathType编辑矩阵时,如果里面 ...
- 使用jstl+el表达式遇到的几个问题
1.使用jstl访问Map<Integer,String>中的内容时总取不到? el表达式的一个bug,在解析数字的时候,会自动将数字转换成Long类型. 我的解决办法是,Map的key改 ...
- NHibernate 数据查询之Linq to NHibernate
刚学NHibernate的时候觉得,HQL挺好用的,但是终归没有与其他技术相关联,只有NHibernate用到,一来容易忘记,二来没有智能提示,排除错误什么的都不给力,直到看到一个同事用Linq to ...
- 在Ubuntu中开启Soft AP功能
在Ubuntu中开启Soft AP功能 1.查看采用的无线网卡是否支持Soft AP: 注意,可以看到有AP字样,表明支持.楼主比较背,在易迅上挑了个销量最高的netcore nw360,结果无法搭建 ...
- 8 -- 深入使用Spring -- 4...6 AOP代理:基于注解的XML配置文件的管理方式
8.4.6 基于XML配置文件的管理方式 Spring 2.x 提供一个新的aop:命名空间来定义切面.切入点和增强处理. XML配置方式优点: ⊙ 如果应用没有使用JDK 1.5 以上版本,那么应用 ...
- 我的notepad++
我觉得,做开发的一定要有一个简单,但功能强大的文本编辑器.我比较喜欢notepad++,而且一直使用.准备通过这篇文章分享一下我的notepad++配置. 希望广大notepad++用户,如果有好的配 ...
- Maven update project...后jdk变成1.5,update project后jdk版本改变
Maven update project...后jdk变成1.5,update project后jdk版本改变 ============================== 蕃薯耀 2018年3月14 ...
- 配置Django框架为生产环境的注意事项(DEBUG=False)
问题描述: Django1.10版本中框架中settings.py配置文件 配置文件settings.py配置了下面两项: DEBUG= False ALLOWED_HOSTS = ['*'] #这样 ...