[Struts2学习笔记] -- 输入校验】的更多相关文章

Struts2可以对客户端的输入进行校验,通过重写ActionSupport的validate方法来实现,具体如下: 首先通过用struts标签库创建一个form表单,表单中控件的name与action中的域名称相同,接着在validate方法中编写验证代码,若验证失败则会自动返回input.代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&g…
Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并实现应用的功能.通常分为数据模型和业务逻辑模型,数据模型用来存放业务数据,比如订单信息.用户信息等:而业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等. 封装应用状态:某些应用数据封装起来,使得视图只能通过接口获取对应的数据 响应状态查询:对应用的状态改变进行处理 暴露应用功能:暴露接口 通…
今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件的上传与下载涉及到Java的IO操作,etc啊--女朋友打电话写不下去了,明天补! 2017年3月11日 经过了...重庆三日游.办公室三日游.辞职之后...终于有时间补上了!!! 最近一周可以说是上大学以来最爽的时候了,辞去了两年半的职务,主要还是因为那个狗屁老师啥都不懂,还想给你干活,下辈子吧!…
Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一个老师曾经说过框架=反射+设计模式+配置文件,现在细想确实很有道理. 让Struts2运行起来首先需要导入核心包,核心包可以参考下载文件中的blank.war中的Jar包,具体需要引入的包如下: 接下来就需要配置文件来让Struts跑起来了.Struts2需要配置两个文件:web.xml和strut…
Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官方提供的demo中拿到必要的jar就行. 在apps/struts2-blank项目下 2.数据库准备 /* Navicat MySQL Data Transfer Source Server : GaGa Source Server Version : 50549 Source Host : lo…
在struts2中,我们能够实现对action的全部方法进行校验或者对action的指定方法进行校验. 对于输入校验struts2提供了两种实现方法: 1. 採用手工编写代码实现. 2. 基于XML配置方式实现. 一.採用手工编写代码实现 1.手工编写代码实现对action中全部方法输入校验 通过重写validate() 方法实现. validate()方法会校验action中全部与execute方法签名同样的方法. 当某个数据校验失败时.我们应该调用addFieldError()方法往系统的f…
输入校验: 1. 分类 客户端校验:javascript,它是用户体验而已,可以绕开. 服务器端校验 * 代码校验 1). 要求Action必须继承ActionSupport 2). 重写ActionSupport类的validate()方法. 添加校验逻辑! > 如果出错,添加fielderror即可. * 配置校验 2. 原理 validation拦截器,会调用Action的validate()方法,我们自己编写的validate()方法,它会在校验失败时向当前Action中添加字段错误.…
Struts2的数据校验属于服务器端校验,Struts2 支持校验方式 : 手动校验(代码校验) :在服务器端通过编写java代码,完成数据校验 自动校验(配置校验) :XML配置校验(主流) 和 注解配置校验 1.手动校验 1)Struts2的手动校验步骤: 首先要从页面中获取对应的标签name属性的值,在动作类action中声明同名的属性,提供get和set方法; 要继承ActionSupport类或者实现Validateable接口: 重写Validateable接口的validate()…
概述 国际化(Internationalization),通途的讲,就是让软件实现对多种语言的支持.可以通过简单的设置就可以从一种语言切换到另一种语言.用的最多的地方就是在应用程序的界面表示上.我们经常接触到一些软件,他们支持多种语言,并且可以随用户的切换.比如我们常用的eclipse就是.通常在实现多语言支持时尽量保持亮点: (1)不给软件开发带来过多的额外负担. (2)实现语言切换或者添加新语言支持不需要修改已经完工的软件(代码) Struts2也提供了对国际化的支持,它的国际化功能建立在J…
本文地址:http://blog.csdn.net/sushengmiyan/article/details/40303897 官方文档:http://struts.apache.org/release/2.3.x/docs/create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application.html 本文作者:sushengmiyan ---------------------…
拦截器初探 昨天临睡觉之前看了看拦截器,也在昨天的学习笔记里面胡诌诌了几句,今天就来好好的会会拦截器这个东西.实际上拦截器是一种模块实现的机制<起码我是这么体会的>(至于说书里面说体现了AOP的设计思想-我连AOP是啥还没搞清楚好伐-),在struts1的版本里面,struts将所有的功能围绕着核心控制器来实现的,而到了Struts2,控制器不在承担过多的功能支持,将这些功能拓展交给拦截器来完成. 拦截器设计为在action之前或action之后执行,从系统的架构图也能看出来,除了系统核心的拦…
当Action类的方法处理请求后,会返回一个字符串(逻辑视图名),框架根据这个结果码选择对应的result,向用户输出,所以需要在struts.xml提供<result>元素定义结果页面,这个结果页面可以是局部结果页面或者全局结果页面. 1. 局部结果页面和全局结果页面 1)局部结果页面 <action name="result" class="cn.sunny.action.ResultAction"> <!-- 局部结果当前Acti…
Struts2的输入校验 之前对请求参数的输入校验一般分为两部分:1.客户端校验,也就是我们写js代码去对客户的误操作进行过滤  2.服务端校验, 这是整个应用组织非法数据的最后防线. Struts2的校验方式与其很大不同.Struts2是手动完成输入校验,可以编写自己的校验规则,基于Annotation的输入校验. 一.手工验证 比如说我们要验证如下: jsp界面用户输入的用户名不能为null,密码不能为null,且长度必须是6-12位. 那么在我们所的action中有两步是必须做的:1.ac…
1.关于Struts2中的struts.xml文件中action设置 <!-- 它是一个通用action,此处的*表明它可以处理任意的请求--> <action name="*" > <!-- 此处的{1}代表前面第一个星号所匹配的字串 --> <result name="success">/WEB-INF/content/{1}.jsp</result> <!--跳转到*(所代表的任意字符)号页面-…
我们在进行一些操作是需要对用户的输入数据进行验证,比如网站的注册,需要对各个数据项进行数据校验,Struts2提供了一些默认的校验器,比如数字的检测,邮箱的检测,字符串长度的检测等等. 常用的Validator 校验器 作用  required  必填校验器,要求字段必须有值  requiredstring 必填字符串校验器,要求必须有值且长度大于0,即不能是空字符串.默认会去掉字符串前后空格 参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数 参数trim:该参…
struts2自带了一些标签库,运用好这些标签库会减少开发周期. 1.struts2标签库是在哪定义的? struts2标签库定义在struts2-core-2.1.8.jar这个文件中,具体在这个jar的META-INF文件夹struts-tags.tld中. 2.如何引用struts2标签库? 使用<%@ taglib prefix="s" uri="/struts-tags" %>可以引用,其中uri是在struts-tags.tld中指定的. 重…
接下来学习一下Struts2简单的类型转换,Struts2基于ognl.jar实现了简单类型的数据转换.比如jsp页面中的form值与字段值的转换,下面写一个例子. 1.创建一个jsp页面,编写一个form表单模拟登录,有一个用户名username和密码password,在加入一个登录按钮.如图: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>…
回过头来看昨天的那个例子. 在昨天的例子中,只转换了一个Point类,如果想转换多个Point类怎么办呢?在昨天的例子上面做一个小的修改. 首先在input.jsp页面中修改几个输入框. <s:textfield name="point1" label="point1"></s:textfield> <s:textfield name="point2" label="point2"><…
Action是用于处理请求操作的,它是由StrutsPrepareAndExceuteFilter分发过来的. 1.Action的创建方式 1) POJO类(PlainOldJavaObjects简单的Java对象),不需要继承任何父类,实现任何接口 public class TestAction { public String execute() { return "success"; } } 这种方式是Struts2框架通过反射来实现的,步骤: struts2框架通过读取strut…
本文地址:http://blog.csdn.net/sushengmiyan/article/details/40479299 官方文档: http://struts.apache.org/release/2.3.x/docs/coding-struts-2-actions.html 本文作者:sushengmiyan -----------------------------------------------------------------------------------------…
本文地址:http://blog.csdn.net/sushengmiyan/article/details/40349201 官方文档:http://struts.apache.org/release/2.3.x/docs/hello-world-using-struts-2.html 本文作者:sushengmiyan ---------------------------------------------------------------------------------------…
一:Action中获取参数值 在Servlet中,我们通过doGet()/doPost()方法中的参数,获取request/response对象,然后提取参数值: 处理请求结束后,有数据需要携带返回客户端时,servlet中是通过request.setAttribute()的方式携带属性值返回客户端. 而在Action中,提供了三种方式获取参数.返回结果: 1:Action全局变量法 在Action中定义一系列全局变量,以及它们的getter/setter方法.则在请求分发到action时,会自…
一.分文件编写框架配置文件 1.不分文件开发可能产生的问题 就类似于我们在写java类时,所有代码都写在一个类里,甚至写在一个方法里. 当3个人都checkout了struts.xml文件时,第一个人提交了,后面的人在没有更新就提交时,第一个人写的可能就白写了. 2.分文件编写Struts2的配置文件 二.封装请求正文到对象中(非常重要) 1.静态参数封装 在struts.xml配置文件中,给动作类注入值.调用的是setter方法. 原因:是由一个staticParams的拦截器完成注入的. 2…
一.Struts2访问Servlet的API 前面已经对Struts2的流程执行完成了,但是如果表单中有参数如何进行接收?又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习Struts2访问Servlet的API来实现这样的功能. 在Struts2中,Action并没有直接和Servlet API进行耦合,也就是说在Struts2的Action中不能直接访问Servlet API.虽然Struts2中的Action访问Servlet API麻烦一些,但是这却是Struts2中Ac…
默认的命名空间“ namespace="" ”. 根命名空间 “ namespace="/" ”. <package name="test" extends="struts-default"> ,假设未指定命名空间,则命名空间默觉得 “ namespace="" ”. 默认命名空间里的Action能够处理不论什么命名空间下的Action请求. 比如,假设存在URL为/barspace/bar.a…
有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这文章就谈论一下定义逻辑Action 这里主要关注的是struts.xml配置文件,一般情况下,我们会这样编写一个Action,当请求的名字为login的时候,就会调用LoginAction的类里面的execute方法 <action name="login" class="struts2.action.LoginAction"> <res…
有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这里就说一下Dynamic Method nvocation ,动态方法调用,什么是动态方法调用呢,就是一个Action里面包含多个方法调用 一般情况下,我们只需要在Action中写一个execute的方法,并返回String 就可以了,或者继承ActionSupport父类,重写这个方法. 但是这样在一个Action中只能完成一个请求,为了解决真实开发中,同一个Action能处理类似的…
在Myeclipse中已经内置好了struts2的环境,但是为了更好的理解,这里自己从头搭建一下: 前期准备:下载struts2的完整包,下载地址:https://struts.apache.org/,解压缩,在apps目录下,解压struts-blank.war包. 第一步:导jar包: myeclipse中,新建一个web项目,将解压好的struts-blank中的lib文件夹下的所有jar包复制到项目的lib文件夹下.然后Add to builtpath. 算上日志相关的jar包,一共13…
Struts2的上传 1.Struts2默认采用了apache commons-fileupload 2.Struts2支持三种类型的上传组件 3.需要引入commons-fileupload相关依赖包 * commons-io-1.3.2.jar * commons-fileupload-1.2.1.jar 4.表单中需要采用POST提交方式,编码类型需要使用:multipart/form-data 5.Struts2的Action 取得文件名称->>规则:输入域的名称+固定字符串FileN…
学习struts2有一段时间了,作为一个运维人员学习的时间还是挺紧张的,写这篇文件为了方便以后复习时使用 环境: MyEclipse 10 tomcat6 jdk1.6   首先建立一个web项目,并复制进需要的jar包,只需要这些包即可,如果复制了过多的包,但是这些包还依赖的包没有复制进入,会导致丢失包的问题 新建立一个包,并提供一个测试的类   LoginAction.java类 package com.djoker.struts2; public class LoginAction { p…