一   写validate方伐

    1 让你的Action继承ActionSupport类,

      重写validate方法,(或validateXxxx)

      判断,写入错误信息

      jsp中用标签显示,struts。xml中配置转向的页面

package he.action;import java.util.Map;import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;public class Login extends ActionSupport{String name;String pwd;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}@Overridepublic void validate() {// TODO Auto-generated method stubsuper.validate();if("".equals(name)||name==null){this.addFieldError("name", "name can not be null");}if("".equals(pwd)||pwd==null){this.addFieldError("pwd", "pwd can not be null");}}public String execute(){System.out.print(name+"  \n"+pwd);if("scott".equals(name)&&"1234".equals(pwd)){Map<String, Object> session = ActionContext.getContext().getSession();session.put("user", name);return "success";}this.addActionError("name do not match pwd");return "fail";}}

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN""http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts><package name="struts2-demo1" extends="struts-default"><action name="login" class="he.action.Login"><result name='success' type='dispatcher'>/ok.jsp</result><result name='fail' type='dispatcher'>/index.jsp</result><result name="input">/index.jsp</result></action></package>
</struts>

Struts.xml

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
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 'index.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><s:actionerror/><s:form action="login" ><s:textfield  name="name" label="name" labelposition="left"></s:textfield><s:fielderror fieldName="name"></s:fielderror><br><s:textfield  name="pwd" label="pwd" labelposition="left"></s:textfield><s:fielderror fieldName="pwd"></s:fielderror><br><s:submit  value="OK"></s:submit></s:form></body>
</html>

index.jsp

转载于:https://www.cnblogs.com/hzzhero/p/5083658.html

表单校验---struts2相关推荐

  1. struts2学习之表单校验的两种方式

    基于覆盖validate方法的表单校验 Action类一般都继承ActionSupport类. 通过覆盖ActionSupport类的validate方法即可在自己的Action类中校验输入项的值. ...

  2. 实战课【1】jQuery实现表单校验及布局

    实战课[1]jQuery实现表单校验及布局 在学习完html,css,js,mysql,jdbc,Servlet,filter,ajax,maven等web基础知识后,开始进行项目实战.此文就会记录在 ...

  3. angular中的class写三元表达式 和 清空表单校验

    这个写三元不像 vue 可以 :class = " -" angular写三元应该是这种 <td [ngClass]="data.properties.rechec ...

  4. 重置表单验证 清除表单校验信息

    重置表单验证 清除表单校验信息 提交表单验证的时间经常遇见的一个问题 再次打开时表单验证依旧存在,这种就很烦,用户体验有点差, 在使用Vant或Element UI框架时经常会遇到,再次打开表单时,原 ...

  5. activeform表单中的旧数据怎么显示_三分钟为你细数 Vue el-form 表单校验的坑点

    背景 Vue 的 el-form 提供了表单校验功能,通过 :rules 属性设置校验规则,并通过 el-form-item 的 prop 属性绑定校验规则.通过封装,让前端校验更方便.具体使用过程中 ...

  6. php 表单校验函数库(判断email格式是否正确、http地址是否合法有效、手机号码是否合法)...

    /*** 表单校验函数库*//*** 判断email格式是否正确* @param $email*/ function is_email($email) {return strlen($email) & ...

  7. jQuery formValidator表单校验代码生成器ver1.0

    发表感言      很感谢一直在支持我的网友们,感谢你们对插件改进的建议.虽然最近坐的脖子和屁股痛,但是我还是用休息时间完成了这个代码生成器的开发,再次感谢支持我的网友们. 谈一下写代码生成器的目的 ...

  8. EelemntUI中e-form表单校验的使用以及表单校验的规则

    场景 Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可. 官方示例代码 <el-form ...

  9. easyui收派标准客户端表单校验

    easyui收派标准客户端表单校验 js代码: //对收派标准的save按钮,添加点击事件 $("#save").click(function(){//判断form数据是否都通过校 ...

最新文章

  1. [JDK8] Stream
  2. OGG 跳过事务(转)
  3. JMeter场景设置叙述
  4. iphonex适配游戏_Cocos Creator 适配怎么做?
  5. fedora 使用 vnc 远程 fedora 28 主机
  6. C语言实现缓冲区溢出实例
  7. 你必须知道的Dockerfile
  8. Innodb ibdata数据文件误删,如何恢复
  9. PostgreSQL Oracle 兼容性之 - rownum
  10. linux物理内存地址与iomem,一种Linux系统物理内存镜像文件分析方法_4
  11. U-Net Pytorch实现
  12. 广西专业技术人员职称个人版_「职称评审」机械工程专业技术人员如何写职称论文?...
  13. Kubernetes的系统架构与设计理念
  14. svn 中 版本回退
  15. 安卓 App 库存系统开发 开发成本估计
  16. Linux的uevent事件机制
  17. Navicat连接Linux下MySQL
  18. ACM竞赛入门,从零开始
  19. 如何在ps添加箭头_PS里怎么画箭头?PS画箭头三种方法介绍
  20. 计网实验-1_Cisco Package Trace:Basic switch setup

热门文章

  1. LeetCode 第 27 场双周赛(1125/1966,前57.2%)
  2. 机器学习基础—Kaggle泰坦尼克预测(完整分析)
  3. ClickHouse表引擎
  4. python节日贺卡图片大全_新年贺卡图片_新年贺卡手工制作图片
  5. 99%算法工程师不知道的if/else优化技巧
  6. 史上最可爱的关系抽取指南?从一条规则到十个开源项目
  7. Spring Boot开发Web应用
  8. Spring Cloud实战小贴士:版本依赖关系
  9. 集群、分布式、微服务的概念及异同
  10. 论文浅尝 | XQA:一个跨语言开放域问答数据集