全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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三种接收参数形式与简单的表单验证功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# struts2  # 表单验证  # 简单谈谈Struts动态表单(DynamicForm)  # Struts2中接收表单数据的三种驱动方式  # J2EE中的struts2表单细节处理  # 详解struts2的token机制和cookie来防止表单重复提交  # Java的Struts框架中登陆功能的实现和表单处理器的使用  # 通过Ajax两种方式讲解Struts2接收数组表单的方法  # struts2中一个表单中提交多个请求的例子(多个提交按钮)  # 基于Struts2实现防止表单重复提交  # 表单  # 三种  # 我们一起  # 小编  # 在此  # 给大家  # 很不错  # 我将  # 为例  # 第二部  # 已经有了  # 介绍一下  # 错误信息  # 来完成  # 所述  # 先来  # 创建一个  # 第二种  # 给我留言  # 具体内容 


相关文章: C++如何使用std::optional?(处理可选值)  如何在景安云服务器上绑定域名并配置虚拟主机?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  微信小程序 五星评分(包括半颗星评分)实例代码  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  建站之星如何一键生成手机站?  一键网站制作软件,义乌购一件代发流程?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  中山网站制作网页,中山新生登记系统登记流程?  如何使用Golang安装API文档生成工具_快速生成接口文档  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  西安大型网站制作公司,西安招聘网站最好的是哪个?  python的本地网站制作,如何创建本地站点?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  如何快速建站并高效导出源代码?  定制建站是什么?如何实现个性化需求?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  如何设置并定期更换建站之星安全管理员密码?  建站上市公司网站建设方案与SEO优化服务定制指南  大连网站设计制作招聘信息,大连投诉网站有哪些?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  ,怎么在广州志愿者网站注册?  建站之星后台密码遗忘或太弱?如何重置与强化?  山东网站制作公司有哪些,山东大源集团官网?  如何在阿里云购买域名并搭建网站?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  如何确保FTP站点访问权限与数据传输安全?  网站代码制作软件有哪些,如何生成自己网站的代码?  电商平台网站制作流程,电商网站如何制作?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  建站之星如何实现PC+手机+微信网站五合一建站?  湖北网站制作公司有哪些,湖北清能集团官网?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  网站app免费制作软件,能免费看各大网站视频的手机app?  高端网站建设与定制开发一站式解决方案 中企动力  广州商城建站系统开发成本与周期如何控制?  如何快速搭建高效服务器建站系统?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  如何快速搭建个人网站并优化SEO?  *服务器网站为何频现安全漏洞?  建站之星ASP如何实现CMS高效搭建与安全管理?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  郑州企业网站制作公司,郑州招聘网站有哪些?  如何在万网自助建站中设置域名及备案? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。