![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Struts2
struts2系列
柏油
不负冬日春晓 不负青春韶华
展开
-
注解式开发
注解:在java中就是在类和方法加一个“@注解名”,让类和方法有其他定义;那么在struts2中,也给我们提供了各种注解,用来替换struts.xml的复杂配置,通常可以用来替换package,action等元素,意味着使用struts注解的方式,可以不写配置文件。范例:定义一个简单的Action:package com.action;import org.apache.struts2原创 2017-06-29 21:00:22 · 1272 阅读 · 0 评论 -
struts2--struts2标签库(部分)
一:非UI标签: 一)控制标签 a、sort标签:用于对指定的集合进行排序。包含两个属性source:指定集合;comparator:用于进行排序的Comparator实例,为必填属性(使用该标签时,生成的子集放在ValueStack栈顶,如果sort标签结束,则该标签生成的子集将从ValueStack中移除)sort标签对集合进行排序时,需要自定义一个Comparator类,自原创 2017-08-16 18:43:25 · 241 阅读 · 0 评论 -
struts2--数据源应用
1、在WebRoot/MWTA-INF下创建一个名为context.xml的配置文件,文件内容如下。 <Resource name = "jdbc/dbtom" type = "javax.sql.DataSource" username = "root" password = "root" driverClassName = "com.mysql.jdbc原创 2017-08-18 11:24:06 · 414 阅读 · 0 评论 -
struts2--详细了解struts2框架的校验器
和拦截器一样,struts2提供了内置校验器。在/com/opensymphony/xwork2/validator/validators/default.xml下。具体如:default.xml:<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator Config 1.0//EN"原创 2017-08-10 15:43:05 · 315 阅读 · 0 评论 -
struts2--操作数据库(数据分页)
很多时候,数据库中存在大量数据,一个jsp页面肯定无法全部显示出来,这时,数据分页就显示其强大了。设计思路:数据分页总是围绕着三个量(总的记录数,当前页数,每页多少条记录),使用了两个Acton,PageAction和AllGoods,分别实现分页功能和获取当前页面信息(保持到list集合,以便在jsp页面输出)。使用了一个DAO类(PageDao)用于数据层的操作(如:从数据库中获取当前页面原创 2017-08-18 18:43:24 · 606 阅读 · 1 评论 -
struts2--(局部)自定义类型转换
(局部)类型转换的基本流程: 提交表单 struts.xml查找action Action类根据表单中的name属性调用set方法将值赋给对应的属性,调用每个属性之前,检查又没有定义这个类型的自定义类型转换 如果没有,则根据默认的规则转换;如果有,则检查在同一目录下,有木有资源文件存在 到自定义转换类中,检查转换的方向,返回对象原创 2017-08-03 23:48:14 · 342 阅读 · 0 评论 -
防止表单重复提交
什么是表单重复提交:由于网速问题,用户不端点击提交按钮,或者刷新页面。或,已经提交成功,用户点击后退,然后恶意刷新页面形成重复提交的问题。一)、令牌机制:在struts2中使用令牌机制,解决重复提交问题:原理:产生一个随机字符串,在客户端和服务端同时保留此字符串的副本,在客户端想服务的发送请求的过程中,会自动发送此副本,服务端收到请求后,会判断本地令牌和提交的令牌是否一致,如果相同,则执行原创 2017-06-28 16:18:54 · 524 阅读 · 0 评论 -
struts2--显示等待页面
有时候对某个请求的处理可能会耗费较长的时间,在这种情况下,向用户显示一个等待页面更为友好一些。通过拦截器ExecuteAndWaitInterceptor来实现。WaitAction:package com.action;import com.opensymphony.xwork2.ActionSupport;public class WaitAction extends Acti原创 2017-08-19 23:37:03 · 409 阅读 · 0 评论 -
struts2--自定义校验器
以输入密码必须由字母和数字组成说明:自定义拦截器:定义一个验证器的类:> 自定义的验证器都需要实现 Validator接口. > 可以选择继承 ValidatorSupport 或 FieldValidatorSupport 类,这两个类都实现了Validator接口了;FieldValidatorSupport继承ValidatorSupport,Fiel原创 2017-08-14 09:54:37 · 243 阅读 · 0 评论 -
struts2--java国际化
获取Locale对象的三种方式:Locale locale1 = new Locale("zh","CN"); //②只有语言信息的本地化对象 Locale locale2 = new Locale("zh"); //1 //③等同于Locale("zh","CN") Locale locale3 = Loca原创 2017-08-14 15:59:58 · 179 阅读 · 0 评论 -
struts2--自定义数组属性类型转换器(一定要理解对象数组的概念!)
实现如下:1、index.jsp:<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>原创 2017-08-07 08:33:27 · 372 阅读 · 0 评论 -
struts2--struts2国际化
案例:使用国际化来创建开发一个简单的登录系统,创建两个资源文件:一个为英文资源文件,一个为中文资源文件,根据客户端不同的语言环境显示不同的页面(可以在浏览器设置中修改页面语言环境)英文资源文件:globalMessages_en_US.properties:loginBtn = LoginloginTitle = UserLoginloginName = LoginNamelogin原创 2017-08-14 19:42:49 · 192 阅读 · 0 评论 -
struts2--struts2国际化(使用占位符)
在java国际化当中,使用MessageFormat类来填充占位符,而在struts2中则采用两种更简单的方式填充:1)在jsp页面中填充国际化消息时的占位符:在标签下使用标签传递值来填充占位符2)在Action中填充国际化消息时的占位符:可以调用getText(String key , List args)或者getText(String key , String[] args)原创 2017-08-14 22:38:58 · 1232 阅读 · 0 评论 -
struts2--通过超链接动态加载国际化资源文件
原理:不通过浏览器设置完成语言/地区设置,在jsp页面中通过超链接完成中英文切换。i18n.jsp页面: English (必须是action,保证i18n拦截器起作用) 中文 OK action:package原创 2017-08-15 14:57:28 · 716 阅读 · 0 评论 -
struts--动态访问国际化资源(国家/语言切换)
要修改国家/语言其根本就是要修改请求中的request_locale属性值!!!目的:为动态地访问国际化资源文件,实现让用户自行选择语言的功能,只需要提供一个下拉列表框,在下拉列表框中列出本应用所支持的各种语言并且,当用户选择下拉列表中的某个选项时,系统将该下拉列表项的值设置为request_locale参数提交(select的name属性设置为request_locale)。为此,可以将原创 2017-08-15 22:18:37 · 434 阅读 · 0 评论 -
文件上传与下载
一)、文件上传(多文件,单文件)(1)、上传单个文件:jsp页面: 账号: 照片: Action代码:package com.action;import java.io.File;import java.io.IOException;import org.apache.commons.io.FileUtils;原创 2017-06-28 21:16:34 · 241 阅读 · 0 评论 -
struts2--使用自定义拦截器
引言:做一个后台管理系统,这个系统为企业内部系统,如果不登录时没有权限访问此系统的。这时,可以使用拦截器拦截非法登录的用户。自定义拦截器需要实现接口com.opensymphony.xwork2.interceptor.Interceptor。当然struts2提供了接口的实现类AbstractInterceptor,继承之,重新方法即可。拦截器代码:package com.Inter原创 2017-08-02 23:00:12 · 349 阅读 · 0 评论 -
struts2--输入校验的国际化信息
strust2国际化: 一:简单理解 国际化简称i18n,其来源是英文单词 internationalization的首末字符i 和n。18为中间的字符数。 随着全球经济的一体化,软件开发者应该开发出支持多国语言、国际化的Web应用。对于Web应用来说,同样的页面在不同的语言环境下需要显示不同的效果。 国际化文件的命名规则:原创 2017-08-10 15:00:37 · 1425 阅读 · 0 评论 -
struts2--实现文字过滤功能
如:过滤结果:目的是将内容中出现的”北京“替换成"**"1、过滤器:package com.Interceptor;import com.action.FilterAction;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.intercep原创 2017-08-03 08:32:29 · 743 阅读 · 0 评论 -
获取ServletAPI
一)、通过ActionContext获取(struts建议): ActionContext ctx = ActionContext.getContext(); ctx.put("request", "wawawa"); ctx.getSession().put("session", "hehehehe"); ctx.getApplication().put("ap原创 2017-06-25 19:18:57 · 248 阅读 · 0 评论 -
OGNL与值栈
一)struts请求处理流程:struts接受请求浏览器 ----(login.action)------ tomcat ------(加载各种配置文件)-------struts核心过滤器 ---(根据配置已经URL确定地址)---- index.jsp -------------struts引擎 ----(实例化Action对象)Login.action ----(默认调用exec原创 2017-06-25 20:48:28 · 239 阅读 · 0 评论 -
类型转换器
struts在接到表单传过来的参数时,会根据表单元素名称自动将值Action对应的属性;那么属性的类型有很多种,比如,int,double已经date,;但是表单提交的数据统统是字符串,意味着struts默认提供各种类型转换。实际开发中需要自定义类型转换器。一)、局部类型转换需要定义一个类,继承类DefaultTypeConverter 重写public Object convertVal原创 2017-06-26 19:08:35 · 333 阅读 · 0 评论 -
拦截器
一)Action拦截器:拦截某个指定的Action(请求)1、定义拦截器package com.interceptor;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.intercep原创 2017-06-27 14:28:26 · 233 阅读 · 0 评论 -
表单数据验证
表单验证分三种:客户端格式验证,服务端格式验证,数据库中的数据有效性验证;基于客户端格式验证很不安全,如果软件需求高,通常需要在服务端进行验证。一)、手工验证:-------验证Action的所有方法(1)jsp代码:<%String path = request.getContextPath();String basePath = request.getScheme(原创 2017-06-27 21:06:38 · 497 阅读 · 0 评论 -
struts2标签下的用户注册
实现效果:1、register.jsp页面:<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>原创 2017-07-30 23:13:05 · 899 阅读 · 0 评论 -
Action间接、直接访问Servlet API
一、间接访问:需要经常访问的Servlet API就是HttpServletRequest 、HttpSession 、ServletContext三个类,分别代表着jsp内置对象的request、session、applicationstruts2 提供一个类ActionContext(当前Action上下文对象,通过这个类可以访问Servlet API。包含以下几个常用方法:Map原创 2017-07-31 14:57:49 · 484 阅读 · 0 评论 -
Action配置(动态方法调用、为Action元素指定method属性、通配符映射)
当用到多个提交按钮时,需要多个Action处理或者一个Action中的不同方法时,通过以下三种方式来进行。1、动态方法调用:案例:多个按钮提交login3.jsp页面:<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.get原创 2017-07-31 23:50:35 · 3364 阅读 · 0 评论 -
struts2--使用struts2的类型转换器(set,list属性集合)
一:set集合:index.jsp: LoginAction:package com.action;import java.util.HashSet;import java.util.Set;import com.bean.User;import com.opensymphony.xwork原创 2017-08-08 08:25:31 · 357 阅读 · 0 评论 -
struts2--使用list属性同时处理多条注册信息
实现如下:结果:登录界面:<% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path +原创 2017-08-08 14:45:44 · 243 阅读 · 0 评论 -
实现用户的注册功能
实现功能:数据库中信息:登录界面:<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> "原创 2017-08-02 08:44:05 · 752 阅读 · 0 评论 -
struts2--Date类型转换
转换结果:index.jsp: LoginAction:package com.action;import java.util.Date;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{原创 2017-08-08 23:41:21 · 278 阅读 · 0 评论 -
struts2--使用OGNL获取数据
显示界面:值栈信息:登录页面(index.jsp): LoginAction:package com.action;import java.util.ArrayList;import java.util.LinkedList;import jav原创 2017-08-16 15:28:00 · 1036 阅读 · 0 评论 -
struts2--使用validate()验证
表单验证:通过validate()方法来验证输入数据格式的正确性,需要实现ActionSupport类登录界面: LoginAction:package com.action;import com.opensymphony.xwork2.ActionSupport;原创 2017-08-09 14:03:29 · 446 阅读 · 0 评论 -
struts2--基于xml文件的验证器
结果:登录界面: Action:package com.action;import com.bean.User;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends A原创 2017-08-10 00:08:37 · 295 阅读 · 0 评论 -
struts2令牌(token)内部原理
原文出处:https://www.cnblogs.com/iyangyuan/archive/2013/05/05/3060488.html 小菜最近接触了struts2中的令牌知识,由于该知识点比较重要,因此想弄明白些,于是满怀信心的上网查阅资料,结果让小菜很无奈,网上的资料千篇一律,总结出来就一句话:“访问页面时,在页面产生一个token id,同时在服务器的session中保存一个同样...转载 2018-02-09 19:47:12 · 225 阅读 · 0 评论