-
Action <action name="hello" class="com.kay.struts2.Action.LoginAction"> 1.引用拦截器 <interceptor-ref name="timer"></interceptor-ref> name:拦截器名称 2.节点(result)配置 <result name="success" type="dispatcher">success.jsp</result> name: result名称,与Action中返回的值相同 type: result类型,不写则选用superpackage的type 3.参数设置 param <param name="url">http://www.sina.com</param> 可通过action中的get/set方法来操作 </action> constant 全局常量 <constant name="struts.i18n.reload" value="true"></constant> name:常量名 value:值 struts.properties中的名称是Struts2已经定义好的,不能改。可在doc中查看查看全部
-
Struts2的标签 1.<include> <include file="struts-default.xml"></include> 可以把每个功能模块独立到一个xml配 置文件中,然后用include引用 2.<package> <package name="com.kay.struts2" extends="struts-default" namespace="/test" abstract="false"> name: 包名 extends: 继承的父类包的包名 abstract: 设置package的属性是否为抽象的,抽象的package不能定义action 值:true/false namespace: 命名空间.会影响到url的地址,例如此命名空间为/test,那么访问的是 http://localhost:8080/struts2/test/XX.action 配置文件中可以有多个包,但包的名称是唯一的 3.<interceptors>拦截器 可自定义,后面再讲。 4.<default-interceptor-ref name="mystack"></default-interceptor-ref> 定义默认的拦截器,每个Action都会自动引用。如果Action中引用了其他的拦截器, 则默认的拦截器将无效 5.global-results 全局results配置,所有的action都可以引用 <global-results> <result name="success">success.jsp</result> </global-results>查看全部
-
1.web.xml中加载过滤器 2.struts.xml 包含: 1.全局属性 2.用户请求和相应Action之间的对应关系 3.Action可能用到的参数和返回结果 4.各种拦截器的配置 3.struts.properties Struts2框架的全局属性文件,自动加载 该文件包含很多key-value对。 可放在Struts.xml的constant标签内查看全部
-
请求(HttpServletRequest) ActionContextCleanUp(可选的过滤器,主要用于与其他框架的集成) FilterDispatcher(2.0~2.1.2版本的核心过滤器,自定义过滤器只能写在ActionContextCleanUp的位置) StrutsPrepareAndExecuteFilter(2.1.3后的核心过滤器,自定义过滤器可以写在Action之前) ActionMapper(在Maaper找到映射的Action,有的话才继续走下去,后缀为action才会触发这个) StrutsPrepareAndExecuteFilter ActionProxy(通过Configuration读stuts.xml找到具体的Action类,然后通过ActionProxy代理来创建Action的反向实例【这个没搞懂,什么叫反向实例】,在经过一系列的拦截器执行Action,然后返回Result字符串(对应的视图),在经过一系列的拦截器) 返回(HttpServletResponse)查看全部
-
result 标签中的 type属性 是查看全部
-
模块: 1.访问Servlet API 2.Action搜索顺序 3.动态方法调用 4.制定多个配置文件 5.默认action 6.Struts2后缀 7.接受参数 8.处理结果类型 1.访问Servlet API HttpServletRequest HttpServletResponse(Struts2不存在) struts2提供了三种方式: 1.ActionContext 2.实现***Aware接口 3.ServletActionContext 2.Action搜索顺序 http://localhost:8080/struts2/path1/path2/path3/student.action 1.判断package是否存在,如:path1/path2/path3/ 2.(package存在)判断action是否存在,如果不存在则去默认namespace的package里面寻找action 3.如果没有,则报错 2.(package不存在)检查上一级路径的package是否存在(知道默认namespace),重复第一步 3.如果没有,则报错 3.动态方法调用 为了解决一个Action对应多个请求的处理,以免Action太多 1.制定method属性(少用)method="" 2.感叹号方式(不推荐)xxx!add.action 3.通配符方式(推荐使用)*_*和{1}{2} 4.指定多个配置文件 1.<include file="模块.xml"></include> 5.默认action 当用户输入的地址找不到对应的action,那么默认action就起作用了 <package> <default-action-ref name="action名称" /> <action name="" class=""> </action> </package>查看全部
-
(1)在result里面最重要的属性是type类型,type的默认值为dispatcher(转发),这个类型支持JSP视图技术。 (2)Struts2支持多种视图技术,例如JSP、Valocity(模板引擎)、FreeMaker(模板引擎)等。 (3)常用三个:chain,redirect,plaintext。 1、chain:将action和另外一个action链接起来。 2、redirect:重定向(会丢失请求参数)。 3、plaintext:返回网页源代码。 4、stream:返回inputstream用于文件下载查看全部
-
处理结果的两种类型: 1.局部结果:作为action子元素配置 2.全局结果:作为global-result元素的子元素配置。 处理结果类型-result标签下还有param标签: 1)location:该属性定义了该视图对应的实际视图资源 2)parse:该参数指定是否可以再实际视图名字中使用OGNL表达式,默认值为TRUE,支持OGNL(Object-Graph Navigation Language)表达式 ognl表达式可以在jsp页面去写,也可以在struts2页面中去写,在实际开发中是不常用的,默认情况下ognl是允许的,是打开状态 <param name="parse">true</param> <param name="location">...地址</param> ognl表达式使用:<param name="location">/${#request.path}.jsp</param> 在action类中对应的方法中写request.setAttribute("path","返回的jsp页面名称");查看全部
-
结果类型input的效果 * 1.当参数类型转换错误时,如age输入框中的类型是字母等情况,方法自动返回input * 2.当action中存在addFiledError时: * 1)addFileError放在一般执行方法,addFieldError("", "");语句后面有返回input的语句 * 2)addFileError放在validate()中 *3.FileError的表现形式: * 在jsp页面中使用<s:fielderror/>标签,该标签name属性为addFieldError方法中的参数fieldName,在jsp页面中使用struts标签, * 需要导入标签库 语句:<%@ taglib prefix="s" uri="/struts-tags" %>查看全部
-
【Structs2处理流程】 用户请求Structs框架控制器(Action)Structs框架视图资源 返回String,提供代码复用性,有利于框架分离。 【Action中五种内置属性(com.opensymphony.xwork2.Action)】 (1) SUCCESS Action正确的执行完成,返回相应的视图,success是name属性的默认值。 (2) NONE 表示Action正确的执行完成,但并不返回任何事视图。 (3) ERROR 表示Action执行失效,返回错误处理视图。 (4) LOGIN Action因为用户没有登录的原因没有正确执行,将返回该登录视图,要求用户进行登录验证 (5) INPUT Action的执行,需要从前端界面获取参数,INPUT就是代表这个参数输入界面,一般在应用中,会对这些 参数进行验证,如果验证没有通过,将自动返回该视图。 注意:<result>/success.jsp</result> 有“/”:绝对路径,开始是整个项目的上下文路径 无“/”:相当于执行该action namespace指定的路径查看全部
-
接收参数三个方法,推荐使用ModeIDriven接收 第一种接收参数的方法:直接在action类中创建相应的属性和getter和setter,和前端的name名字相同。eg:前端的username,在action类中就要建立一个private String username; Struts会自动映射为这个属性赋值 第二种接受参数的方法:使用DomainModel,将username 和password两个属性封装为一个类User(必须是标准的JavaBean),在action中声明这个属性:private User user; 同时必须为user设置getter和setter;在前端中的name需要设置为user.name和user.password,才能映射成功。如果private User user=new User();是没有办法映射成功的 第三种接收参数的方法:使用ModelDriven<T>接口,这个action必须实现这个接口的public T getModel()方法。此时声明的属性必须实例化,eg: private User user = new User(); 同时不需要getter和setter。前端的name也只需要写username和password就可以,不需要再加域了。这种方法时最推荐的方法,因为可以减少前后端的耦合 注意: 1、使用Action的属性接受参数,在Action中定义需要接受的属性,并写它的set/get方法。 2、使用DomainModel接受参数,创建实体类定义需要接受的属性,并set/get方法,在Action中创建实体类名属性。并在界面进行指定。 3、使用ModelDriver接受参数,在Action中实现ModelDriver<实体类名>接口,并实现方法返回当前需要转换的对象,删除set/get方法,并对 对象 进行实例化,并取消指定。 4、获取List集合中的参数。获取多个参数查看全部
-
struts2后缀: 三种方式: 1.struts.properties中:struts.action.extension=action,do,struts2 2.struts.xml中增加常量constant: <constant name="struts.action.extension" value="action,do,struts2"></constant> 3.在过滤器中配置intt-param参数: <init-param> <param-name>struts.action.extension</param-name> <param-value>do,action,strtus2</param-value> </init-param> 注:要先将web.xml中filter-mapping的url-pattern配置成/*,然后将此处的struts.action.extension配置成html才会起效果,否则不会达到效果。查看全部
-
默认Action,在网页找不到原来输入的网址的情况下,跳转的页面 新建 <default-action-ref name = "xxx"></default-action-ref>//这是默认跳转指令,name中的名字可以自定义 <action name= "xxx">//这里的name必须跟<default-action-ref>中的name一样 <result>xxxx.jsp</result>//需要默认跳转到的jsp页面 </action>//结束action查看全部
-
指定多个配置文件,如果项目比较大,xml配置文件比较多,那么可以在struts.xml中使用include标签,将多个配置文件包括进来。 <include file="***.xml"> </include> <constant name="struts.i18n.encoding" value="UTF-8"> </constant> 注意: 1.被include的标签一定要符合struts的dtd规范。也就是说被include的xml文件的内部格式要符合struts的xml文件规范。 2.xml文件的编码格式要相同,如果是utf-8,那么都是utf-8。查看全部
-
动态方法调用:为了解决一个Action对应多个请求的处理 1.指定method属性 2.感叹号方式:不推荐使用 必须添加<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> 3.通配符方式:建议使用 在struts2.3版本以后使用通配符需要配置<allowed-methods>标签查看全部
举报
0/150
提交
取消