
struts2
文章平均质量分 74
a2181745
这个作者很懒,什么都没留下…
展开
-
5.Struts2_通过ServletAPI耦合的方式获取Web资源
耦合的方式获取web资源的途径有两种:1 使用ServletActionContext2.实现ServletXxxAware接口通过耦合方式获取web资源,可以只用很多原生API而不局限于,非耦合只能获得Map集合。第一种方法:package com.hcx.action;import javax.servlet.ServletContext;import jav原创 2015-02-27 15:22:20 · 387 阅读 · 0 评论 -
3.Struts2_通过ActionContext获取Web资源
1.在Action中访问web资源:1)什么是web资源?HttpServletRequest,HttpSession,ServletContext等原生的Servlet API。2)为什么获取web资源?b/s构架的应用的Controller中,必然需要访问web资源:向域对象中读写属性,读写Cookie,获取realPath...原创 2015-02-26 10:14:04 · 431 阅读 · 0 评论 -
6.Struts2_result
result一共有2个属性,name和type。type默认取值为dispatcher(转发),还有redirect(重定向),redirectAction(重定向到一个Action),chain(转发到一个Action)等。<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configurat原创 2015-02-28 09:27:31 · 287 阅读 · 0 评论 -
9.struts2_动态方法调用
Struts2可以在忽略struts.xml配置下的方法,而根据url指定的action方法进行调用,这个功能在框架中默认关闭!1.先在配置文件中开启该功能 <action name="testDynamicMethodInvocation" class="com.atguigu.struts2.action.Test原创 2017-05-19 12:30:33 · 227 阅读 · 0 评论 -
8.struts2_OGNL
1.关于值栈 1)helloworld时,${productName}读取productName时,实际上属性并不在request等域中,而是从值栈中读取。2)ValueStack: 可以从ActionContext中获取值栈对象 其分为两个逻辑部分>Map栈:实际上是OgnlContext类型,是一个Map,ActionContext的引用,里面保存呢这 各种Map,如ses原创 2015-03-03 09:00:35 · 241 阅读 · 0 评论 -
11.struts2_通用标签
1 Struts2何时将Action的对象放入值栈中?放入时间:在调用Action类的Action方法时,但在之前会进行如下:-->先创建一个StrutsActionProxy对象-->在创建StrutsActionProxy之后,对其进行初始化时,把Action对象放入值栈中。2 *property标签用来输出值栈内,某个对象的属性值。 s:propert原创 2017-05-19 22:10:26 · 422 阅读 · 0 评论 -
13.struts2_主题
主题:为了让所有的UI标签能够产生同样的视觉效果而归集到一起的一组模板simple xhtml css ajax如何修改:1.在struts.xml中 2.在request中request.setAttribute("theme", "xhtml");3.在具体某个标签中原创 2017-05-20 21:03:22 · 220 阅读 · 0 评论 -
14.struts2_框架流程分析,以及Params拦截器
ActionProxy是Action的一个代理类,也就是说Action的调用是通过ActionProxy实现的,其实就是调用了ActionProxy.execute()方法,而该方法又调用了ActionInvocation.invoke()方法。ActionInvocation负责Interceptor,Action,Result等一系列元素的调度。而这些拦截器原创 2017-05-21 10:34:31 · 807 阅读 · 0 评论 -
15.struts2_ModelDriven拦截器
有些Action类不代表任何Model对象,他们得功能仅限于提供显示服务,也就是控制单元。如果Action实现了ModelDriven接口,那么该拦截器会将getModel()方法返回对象置于栈顶。对应Aciton类,实现了ModelDRiven类public class EmployeeAction implements RequestAware, ModelDriven,原创 2017-05-21 11:16:53 · 249 阅读 · 0 评论 -
16.Struts2_使用ParamsPrepareParams拦截器栈
页面修改Employee对象时,传入Aciton id属性,在页面中需要回显。通过id在数据库中取到emp,将各个字段赋值给栈顶的新Employee。完成回显,并跳转到修改页面。public String edit(){ //传入的EmployeeID //根据EmployeeID获取数据库对象,emp是数据库取出来的 Employee emp=dao.get(empl原创 2017-05-21 12:02:26 · 344 阅读 · 0 评论 -
17.struts2_PrepareInterceptor拦截器
为了解决上节的问题I. 在执行删除的时候, employeeId 不为 null, 但 getModel 方法却从数据库加载了一个对象. 不该加载!II. 指向查询全部信息时, 也 new Employee() 对象. 浪费!使用PrepareInterceptor拦截器可以为每一个 ActionMethod 准备 prepare[ActionMethdName]原创 2017-05-21 17:14:05 · 381 阅读 · 0 评论 -
19.struts2_ 自定义类型转换
Struts2不能将页面输入的字符串转换到引用类型,需要自定义转换器。1.开发类型转换器类:一般扩展框架中的 StrutsTypeConverter类,2.配置类型转器:配置有2种①基于字段所在Model的包下新建一个ModelClassName-conversion.properties,在文件中植入键值对:fieldName=类型转换器的全类名(这个类是单例的)第一次使用创建原创 2017-05-22 20:55:38 · 293 阅读 · 0 评论 -
12.struts2_表单标签
使用表单标签的优点1.表单回显2.对页面进行布局和排版<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here <% request.setAttribute("the原创 2017-05-20 20:48:22 · 190 阅读 · 0 评论 -
10.struts2_声明式异常的处理
1.异常处理:exception-mapping元素struts.xml中配置 exception-mapping标签,可以捕捉在Action中出现的异常,exception:需要捕捉的异常名称result:出现异常后,跳转到哪个result <action name="product-save" class="com.atguigu.strut原创 2017-05-19 17:41:43 · 201 阅读 · 0 评论 -
4.Struts2_使用XxxAware接口获取web资源
上一节使用的ApplicationContext获取web资源,本节使用的是XxxAware接口。新建一个Action:本例只实现application的读取存入操作,session等域对象类似。package com.hcx.action;import java.util.Map;import org.apache.struts2.interceptor.Applicatio原创 2015-02-27 10:18:19 · 500 阅读 · 0 评论 -
2.Struts2_HelloWorld
使用上篇Product的例子,使用Struts2框架来实现。前台两个页面改动不大,参见第一节。1.Product类类中添加了Save()方法package com.hcx.struts2.helloworld;public class Product { private Integer productId; private String productName;原创 2015-02-26 09:01:20 · 305 阅读 · 0 评论 -
7.Struts2_通配符映射
一个web应用可能有很多action声明。可以利用struts提供的通配符映射机制,把多个彼此相似的映射关系简化为一个映射关系。通配符规则:1.若找到多个匹配,没有通配符的那个执行2。若制定动作不存在,struts将将尝试把uri与任何一个包含着通配符*的动作名及进行匹配3.被通配符匹配到的uri字符串的子串可以用{1},{2}来引用。struts.xml:<!DOC原创 2015-02-28 10:00:51 · 343 阅读 · 0 评论 -
20.struts2_国际化
1.国际化的目标1)如何配置国际化资源文件 ①Action 范围资源文件:在Action类文件所在的路径建立命名规则ActionName_language_country.properties 的文件②包范围资源文件:在包的根路径下建立文件名为package_language_country.properties 的属性文件,一旦建立,处于该包下的所有 A原创 2017-05-23 19:58:22 · 207 阅读 · 0 评论 -
21.struts2_通过超链接实现国际化转换
实现核心在于:Struts2框架如何确定Local 对象的。具体参见框架的I18n拦截器(I18nInterceptor 类)在页面上添加中英文按钮,点击即可切换语言。关键参数reqeust_localeEnglish中文原创 2017-05-23 20:33:22 · 282 阅读 · 0 评论 -
22.struts2_运行流程分析
1. 请求发送给 StrutsPrepareAndExecuteFilter2. StrutsPrepareAndExecuteFilter 询问 ActionMapper: 该请求是否是一个 Struts2 请求(即是否返回一个非空的 ActionMapping 对象)3. 若 ActionMapper 认为该请求是一个 Struts2 请求,则 StrutsPrepareAndExec原创 2017-05-24 10:05:25 · 360 阅读 · 0 评论 -
18.struts2_类型转换,错误消息的显示和定制
从一个HTML表单到Action对象,类型转换的是从字符串到非字符串。struts2把请求参数映射到action属性的工作由Parameters拦截器负责,可以完成字符串与基本类型之间的转换。原创 2017-05-22 12:32:32 · 371 阅读 · 0 评论 -
23.struts2_输入验证
概述:一个健壮的web应用程序必须保证用户输入时合法、有效的。除了前段js的验证外,后台也要进行验证。Struts2的输入验证:-->基于XWork Validation Framework的声明式验证:在xml中配置-->编程验证:通过编写代码进行验证输入Action类:TestValidationActionpublic class TestValidation原创 2017-05-24 14:39:45 · 213 阅读 · 0 评论 -
24.struts2_短路验证,非字段验证,相同验证规则使用一条相应
一、短路验证validation.xml中添加 conversion类型转换错误验证,当在Age文本框输入非int型参数后,后台会返回包含范围、转换错误的多条消息。 Conversion Error Occurred 20 50 Age needs to be between ${min}and ${max}原创 2017-05-24 15:21:17 · 328 阅读 · 0 评论 -
25.struts2_自定义验证器和编程验证
一、自定义验证器定义:可以选择继承ValidatorSupport类(实现一般验证器)或FieldValidatorSupport类(实现字段验证器)。配置:默认情况下,Struts2会在类路径根目录下加载validators.xml文件中的验证器。若类路径下没有,则从com.opensymphony.xwork2.validator.validator.validators下加载原创 2017-05-24 20:51:23 · 314 阅读 · 0 评论 -
26.struts2_文件的上传
一、准备工作表单准备:将 HTML表单 enctype属性设置为 multipart/form-data 表单需要使用 method为post的方式 添加字段二、struts2对文件上传的支持框架中,FileUpload拦截器和Jakarta Commons FileUpload组件可以完成文件的上传。步骤:1.在对应Action建立三个属性private原创 2017-05-25 10:59:20 · 255 阅读 · 0 评论 -
27.struts2_文件的下载
Struts2专门为文件下载提供了一种Stream结果类型,在使用Stream结果时,不必准备一个JSP页面。可为result 设定如下参数:contentType: 结果类型contentLength:下载长度contentDisposition:设定相应头,是一个文件下载类型。一般取值格式为: attachment;filename=“document.pdf”.input原创 2017-05-25 15:19:21 · 340 阅读 · 0 评论 -
28.struts2_表单重复提交
一、什么是表单的重复提交在不刷新表单页面的情况下,多提点击提交按钮已经提交成功,回退后再次点击提交在控制器相应为转发情况下,提交成功后,F5刷新页面(因为此时浏览器url是action的url会重新操作),重定向url就变化了。二、Struts2解决表单重复提交使用标签,该标签会在隐藏域和session中放入一个相同的值。经过Token或者TokenSession拦截器原创 2017-05-26 21:23:28 · 276 阅读 · 0 评论 -
29.struts2_自定义拦截器
Interceptor接口每个拦截器都实现com.opensymphony.xwork2.interceptor.Interceptor接口。init:该方法在拦截器被创建后立即调用,在生命周期里只调用一次。 intercept:每拦截一个请求,该方法调用一次。destroy:该方法将在拦截器被销毁之前调用,生命周期中也只被调用一次。AbstractI原创 2017-05-26 21:41:42 · 301 阅读 · 0 评论 -
Strut2_使用Filter作为控制器的MVC应用
My JSP 'input.jsp' starting page <!-- --> ProductName : ProductDesc: ProductPrice: 在input.jsp页面输入表单信息,details.jsp中显示表单信息。Filter类进行逻辑处理,根据servle原创 2015-02-25 10:30:39 · 531 阅读 · 0 评论 -
9.struts2_声明式异常处理
异常处理exception-mapping元素:配置当前action的声明式异常处理。exception-mapping元素有2个属性:---exception:需要捕获的异常,全类名---result:指定一个相应结果,出现异常时,被执行。出现异常时,值栈中会存储exceptionHolder,对应exceptionStack和exception两类信息<action nam原创 2015-03-03 09:35:37 · 351 阅读 · 0 评论