前篇文章对struts2的一个入门,重点是对struts2的架构图有一个大概的了解即可,之后的几篇文章,就是细化struts2,将struts2中的各种功能进行梳理,其实学完之后,对struts2的使用不外乎这几点,参数自动封装,拦截器的使用,数据校验,ognl表达(值栈和actionContext的讲解),struts2的标签,struts2的国际化,struts2的文件上传下载. 把这几个功能都学会了使用之后,struts2基本上就学完了.所以接下来的文章就是对这几个功能进行讲解.如何使用.…
一.request接收表单提交数据: getParameter(String)方法(常用) getParameterValues(String name)方法(常用) getParameterMap()方法(编写框架时常用) 比如现在有如下的form表单 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <!DOCTYPE HTML…
目录 表单标签1. form标签2. submit标签3. checkbox标签4. checkboxlist标签5. combobox标签6. doubleselect标签7. head标签8. file标签9. hidden/textfield/password/textarea标签10. inputtransferselect标签11. label标签12. optiontransferselect标签13. select标签14. optgroup标签15. radio标签16. res…
原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($("#textValue").val() == "") {3                 $("#errortip").html("<font color='#FF0000'>请输入查询内容</font>")…
18. datetimepicker标签 18.1 拷贝JAR包 在struts-2.x.x压缩包的lib目录中拷贝struts2-dojo-plugin-2.3.8.jar到WEB-INF/lib目录. 18.2 JSP中加入引用 参考下面的代码: <%@ taglib uri="/struts-tags" prefix="s"%> <%@ taglib uri="/struts-dojo-tags" prefix="…
struts2防表单重复提交有两种方式. 其一是action的重定向,跳转时设置type为从一个action跳转到另一个action或者另一个页面, 使用户提交后,所停留的位置,不是当前处理数据的Action,这样用户再刷新时,就不会再次执行这个Action了, 就会避免表单重复提交的问题了. 其二就是session令牌的方式(token) 处理也很方便,只需要在所提交的表单上加一个struts2标签  <s:token> 注意在该页面需要导入  <%@taglib prefix=&qu…
前篇文章对struts2的一个入门,重点是对struts2的架构图有一个大概的了解即可,之后的几篇文章,就是细化struts2,将struts2中的各种功能进行梳理,其实学完之后,对struts2的使用不外乎这几点,参数自动封装,拦截器的使用,数据校验,ognl表达(值栈和actionContext的讲解),struts2的标签,struts2的国际化,struts2的文件上传下载. 把这几个功能都学会了使用之后,struts2基本上就学完了.所以接下来的文章就是对这几个功能进行讲解.如何使用.…
前言 对struts2的使用不外乎这几点,参数自动封装,拦截器的使用,数据校验,ognl表达(值栈和actionContext的讲解),struts2的标签,struts2的国际化, struts2的文件上传下载. 把这几个功能都学会了使用之后,struts2基本上就学完了. 一.数据自动封装概述  Struts2提供了一些基于拦截器的数据封装方式,一共有四种,分为 静态参数封装和动态属性封装 动态属性封装又可分为属性驱动和模型驱动 属性驱动又可分为基本属性驱动和对象图导航语言(OGNL,Obj…
Struts2请求数据自动封装: (1)实现原理:参数拦截器 (2)方式1:jsp表单数据填充到action中的属性:        普通的成员变量,必须给set,get可以不给的.    注意点,Action中定义成员变量,成员变量的setXxx方法名中的Xxx和表单中name属性提交的参数对应起来的: (3)方式2:领域模型接受表单的参数(常用),jsp表单数据填充到action的对象的属性:        对象类型,一定给get方法.     注意点:Action中定义封装的实体类对象如p…
用户重复提交表单在某些场合将会造成非常严重的后果.例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次.因此,重复提交表单会对你的系统带来逻辑影响,必须采取一些措施防止这类情况的发生. 用户重复提交同一个HTML表单的原因有: 一.快速多次点击了提交按钮:二.提交表单后按下浏览器的刷新按钮. 设置Struts 2的预防表单重复提交的功能        Struts 2已经内置了能够防止用户重复提交同一个HTML表…
一.原因      用户重复提交表单在某些场合将会造成非常严重的后果.例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太 慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次.因此,重复提交表单会对你的系统带来逻 辑影响,必须采取一些措施防止这类情况的发生.     用户重复提交同一个HTML表单的原因有:  一.快速多次点击了提交按钮:二.提交表单后按下浏览器的刷新按钮. 二.原理      Struts2已经内置了能够防止用户重复提交同一个HTML表单的功能…
一.造成重复提交主要的两个原因:    在平时的开发过程中,经常可以遇到表单重复提交的问题,如做一个注册页面,如果表单重复提交,那么一个用户就会注册多次,重复提交主要由于两种原因. 1. 一是,服务器处理时间久.当用户在表单中填完信息,点击“提交”按钮后,由于服务器反应时间过长没能及时看到响应信息,或者出于其它目的,再次点击“提 交”按钮,从而导致在服务器端接收到两条或多条相同的信息.如果信息需要存储到后台数据库中,如此以来就会产生数据库操作异常提示信息,以至于给用户带来 错误信息提示,从而给用…
H5的表单新特性可以分为两大类. 一.10个input的type值 1.email:邮件输入域,在表单提交时提供简单的邮箱格式验证,并弹出一个提示窗口. 2.url:地址输入域,在表单提交时提供简单的URL地址格式验证,并弹出一个提示窗口. 3.number:数字输入域.(可设置min.max.step) 4.tel:电话号码输入域,在手机浏览器中弹出数字输入域. 5.search:搜索输入域,在手机浏览器右下角呈现搜索按键. 6.range:范围选择控件. 7.color:颜色选择控件. 8.…
<form method="post" action=""> <input type="text" name="user.uname" /> <input type="text" name="user.upass" /> <input type="submit" value="提交" /> </…
一.获取封装表单数据到list集合 示例 获取用户输入的用户名和密码并输出用户名. jsp页面 list[0]表示list中的第一个user对象 Java代码 二.封装表单数据到map集合 示例 获取用户输入的用户名和密码并输出用户名. jsp页面 'one'是map的key通过key来获取user对象 java代码…
1.说明 系统拦截器的应用. 表单重复提交:当使用请求转化进行跳转的时候,存在着表单重复提交的问题. 2.在表单中加入s:token 如果页面加入了struts2的标签,页面的请求必须进入struts2的核心控制器. s:token会被解析为隐藏域,隐藏域中的值是服务器产生的一个token,当提交表单的时候,会将token的值提交到服务器,struts2将客户端提交的token和session中的token比较: 如果匹配,正常提交,执行处理请求的方法 如果不匹配,返回值指定的result,re…
在Bootstrap学习笔记(一) 排版的基础上继续学习Bootstrap的表单,编辑器及head内代码不变. 3-1 基础表单 单中常见的元素主要包括:文本输入框.下拉选择框.单选按钮.复选按钮.文本域和按钮等. 在Bootstrap框架中,通过定制了一个类名`form-control`,也就是说,如果这几个元素使用了类名“form-control”,将会实现一些设计上的定制效果. 1.宽度变成了100% 2.设置了一个浅灰色(#ccc)的边框 3.具有4px的圆角 4.设置阴影效果,并且元素…
* 在表单页面中增加一个隐藏域:<s:token></s:token>(需要在表单内)        * 创建一个struts.xml的配置文件,具体配置如下:        <!-- 配置默认执行的拦截器栈,增加令牌拦截器 -->        <interceptors>            <interceptor-stack name="tokenStack">                <intercep…
防止表单重复提交(拦截器) 1.回顾之前的解决办法: 2.Struts2中的解决办法: 2.1.使用重定向 <result type="redirect">/success.jsp</result> 遗留的问题:防不住后退,再提交. 2.2.使用<s:token/>生成令牌配合token拦截器 <%@ page language="java" import="java.util.*" pageEncodi…
这一节相对来说需要理解的东西不是太多,记住了那些api就行了. 还是一个案例(同样来自miaov),一个表单验证,先上代码,然后再对对应的内容进行解释. <!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <meta charset="UTF-8"> <title>Title</title> </head>…
实体 package com.oak.entity; public class User {private int id;private String username;private String password;private int sex;private int age;private double salary;private String address;private String phone;public int getId() { return id;}public void…
一.表单处理流程如下 1.定义一个表单,在这里表单最多有22个字段 import play.api.data._ import play.api.data.Forms._ //要使用验证和约束 import play.api.data.validation.Constraints._ case class UserData(name: String, age: Int) val userForm = Form( mapping( "name" -> text, "age…
Validate常用的一些参数和方法 1.errorElement 修改显示错误提示信息的HTML标签.默认是<label>,可以指定为<span>.... $("#formId").validate({ errorElement:"span" }); 2.errorClass 修改显示错误信息的HTML标签的class属性.默认是error. $("#formId").validate({ errorClass:&quo…
介绍需求 熟悉并优化公司项目的第五天,领导说能不能把表单验证封装一下,我打开代码一看 由于是后台管理系统,无数个需要验证的输入框,由于截图长度受限,只能展示部分,类似于这种页面还有无数个!代码重复率非常高,难怪需要封装了. 实现思路 1.将代码从页面中抽离,在utils文件夹新建js文件存储 2.新增js代码 let FormValidate = (function () { // eslint-disable-next-line function FormValidate() {} // Fr…
前言 继续接着上一篇的webix入门:https://www.cnblogs.com/zc22/p/15912342.html.今天完成剩下两个最重要的控件,表单和表格的使用.掌握了这两个,整个Webix就入门完成了,就会进入吐槽模式. Webix 表单Form的使用 表单的初始化布局 本章节介绍表单的获取.设置.验证:表单控件的数据绑定. 表单和一般控件,最大的区别,就是提供了批量操作.包括批量的设置取值.批量输入验证.先创建一个表单: webix.ui({ id: 'webix_domast…
:enabled 选择可用状态的表单元素 :disabled 选择不可用状态的表单元素 :checked 复选框.单选框选中状态的选项 ::selection 用来匹配突出显示的文本(用鼠标选择文本时的文本). :read-only 用来指定处于只读状态元素的样式.即元素中设置了“readonly=’readonly’” :read-write 来指定当元素处于非只读状态时的样式.…
一.表单 1.基本格式 <!-- 基本格式 --> <form> <div class="form-group"> <label>姓名 </label> <input type="text" class="form-control" placeholder="请输入您的姓名"/> </div> <div class="form-…
通过Enumeration的hasMoreElements()方法遍历.再由nextElement()方法获得枚举的值.此时的值是form表单中所有控件的name属性的值. 最后通过request.getParameter()方法获取表单控件的value值. Enumeration pNames=request.getParameterNames(); while(pNames.hasMoreElements()){ String name=(String)pNames.nextElement(…
/** * 获取表单数据,并将其转换为对象 */ function getFormObj(formId) { var formObj = {}; var inputs = $('#'+formId).serializeArray(); $.each(inputs, function (i, input) { formObj[input.name] = input.value; }); return formObj; }…
介绍 form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成器.并且支持生成任何 Vue 组件.结合内置17种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定. 文档 | github 演示项目: 开源的高品质微信商城 功能 自定义组件 可生成任何Vue组件 自带数据验证 轻松转换为表单组件 通过 JSON 生成表单 通过 Maker 生成表单 强大的API,可快速操作表单 双向数据绑定 事件扩展 局部更新 数据验证 栅格布局 内置组件17种常…