不一定非得执行execute方法,可以指定调用具体的方法。... <result name="success...add 四、通配符 <em>action</em>配置 <result...参数 package com.ncepu.<em>struts</em><em>2</em>; import com.ncepu.<em>struts</em><em>2</em>.entity.User; public class <em>Action</em>1 { private...name="action1"> <
execute方法即可 或者实现Action接口 不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法 ------------------------...------------------------------------------- 当我们访问这个action的时候,他会去找对应的class:com.bjsxt.struts2.front.action.IndexAction1....front.action.IndexAction2" 和class="com.bjsxt.struts2.front.action.IndexAction3" 在上面的三个测试当中....front.action; import com.opensymphony.xwork2.Action; public class IndexAction2 implements Action { ... 或者实现Action接口 不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法
这里写图片描述 ---- 小总结 如果我们使用到了Struts2一些特用的功能,我们就需要继承ActionSupport 如果我们没用到Struts2的特殊功能,只要平凡写一个Java类行了。...Aware实际就是一种拦截器,拦截代码在执行Action之前执行、将资源注射到Action中 实现SessionAware, RequestAware, ApplicationAware接口,它就要在程序中实现三个方法...这里写图片描述 直接抛出了异常 ? 这里写图片描述 ? 这里写图片描述 分析 那么,我们怎么让Struts能够支持更多的日期格式呢??...这里写图片描述 ---- 错误提示页面 当发生了日期转换的异常时,Struts给出的页面是这样子的: ?...> ---- 模型驱动 什么是模型驱动 在Struts2中模型驱动就是用来封装数据的..完成数据的自动封装.
默认的Action!... 默认的action的引用;当别人访问这个action的时候,如果找不到对应的action 默认就用这个...action了, 如果没有默认action的引用,那么我们在url中输入一个地址时候,action不能在struts.xml 文件中找到,那么这时就会报错,但是如果有了默认的action引用,就不会出现这种情况了...://struts.apache.org/dtds/struts-2.0.dtd"> <default-action-ref name="
action VS Action 类 action: 代表一个 Struts2 的请求....从字符串到非字符串(基本数据库类型)之间的数据转换可以自动发生 2.必须有一个不带参的构造器: 通过反射创建实例 3.至少有一个供 struts 在执行这个 action 时调用的方法 4.同一个 Action...name="ok">/WEB-INF/page/Show.jsp ---- 3.至少有一个供 struts 在执行这个 action 时调用的方法...name="ok">/WEB-INF/page/Show.jsp 如果action中class所对应的类中没有method所对应的方法,将会报异常...---- 5.Struts2 会为每一个 HTTP 请求创建一个新的 Action 实例, 即 Action 不是单例的, 是线程安全的.
Action类的实现方式 1.1. Action类的实现方式 1.2. 普通的pojo类 1.3. 继承ActionSupport 1.4....实现Action类 Action类的实现方式 Action类的实现方式 如果想要浏览器可以映射到其中的方法,那么必须返回一个String,使用这个值指示需要跳转的视图或者Action Struts中的...Action类实际上可以是一个POJO类,其中也是可以定义许多的方法,但是如果在struts.xml的配置文件中特指调用哪个方法的话,那么就会默认会调用名为execute的方法。...-- 配置跳转到添加学生页面的action --> <action name="simpleAction" class="com.jsnu.struts2.controller.SimpleAction...return SUCCESS; } } struts.xml配置 同上 只需要改变中的name 和 class即可
最近在用struts2遇到一个怪问题,struts2的默认方法老是执行两次,搞了大半天都没有找到,在最后即将放弃时终于找打了,原来是响应的页面有 一个图片标签,而图片标签请求的地址不存在,它就默认再次请求了当前请求的...url,造成了两次执行struts2的方法。...1,被响应的图片URL不存在,导致请求原谅url而执行了两次; 2,ajax模式下,调用的action方法不能为get*方式命名,内中机理未知; 结论:action中方法最好不要以...3,提交标签中用到JS脚本去执行的话,如写成的话,submit要执行一次,οnclick="save()也要执行一次,去掉其中一个即可.../s:form> 解决办法: 原因是,form表单提交会被struts2当作action执行.
在我们定义Action的时候会希望有一个默认的action在写错action时或者不写action时不至于报错 这里我只写一个简单的strut.xml例子 <action name="index" class="com.pengli.struts.parampack.MyActionOne.../index.jsp <action name="index" class.../index.jsp
一个简单的Action里面的核心方法只有一个execute(); 定义多个核心方法的Action,有如下3种方式: 为Action配置method属性 动态方法调用 使用通配符映射方式 动态方法调用是指采用如下格式调用...Action中对应的方法: 在struts.xml中只需要配置该Action,而不必配置每个方法,配置格式: jsp 在JSP中用Javascript动态改变表单action中的属性 <...div"} 如果sturts的版本是2.5的话,struts.xml的配置需要加多标签,表示允许使用action里面的哪些方法。
Action类访问Servlet API 本人独立博客https://chenjiabing666.github.io Struts2并未直接和Servlet API耦合,这是Struts2的一个改良之处...方法中使用这个设置request域,session域中的属性 public class SimpleAction implements Action { @Override public...} 总结 虽说现在可以向各种域中添加属性获取属性,但是我们不可以移除属性,所以说这种方法不如直接使用Servlet API功能更加强大 实现接口访问Servlet API 实现接口访问对一个Action...实现该接口的Action可以直接访问用户请求的HttpServletRequest实例 ServletResponseAware实现该接口的Action可以直接访问请求的HttpServletResponse...类中使用 public class SimpleAction implements Action { @Override public String execute(){
Action类的实现方式 本人独立博客https://chenjiabing666.github.io 所有的Action类必须有无参构造方法 Action类的实现方式 如果想要浏览器可以映射到其中的方法...,那么必须返回一个String,使用这个值指示需要跳转的视图或者Action Struts中的Action类实际上可以是一个POJO类,其中也是可以定义许多的方法,但是如果在struts.xml的配置文件中特指调用哪个方法的话...-- 配置跳转到添加学生页面的action --> <action name="simpleAction" class="com.jsnu.struts2.controller.SimpleAction...throws Exception { System.out.println("继承了ActionSupport"); return SUCCESS; } } struts...同上 实现 /** * action类: 这里实现的Action接口 * @author chenjiabing */ public class TestAction implements Action
当一个Action处理类中处理多个业务时,action的配置 文件将会急剧增加,导致配置文件很臃肿的问题。 struts2提供了两种方案来解决这个问题。...一种是动态方法调用,另一种是使用通配符来配置Action。 这里只讲使用通配符的方式来配置Action....{ if(userDao.delete(id)>0){ return Action.SUCCESS; } return Action.ERROR...{ return user; } public void setUser(User user) { this.user = user; } } struts.xml...> 注意:使用通配符请求action的方式和以前一样
訪问指定方法 方式一: http://localhost/struts2/simple/hello!...say.action 能够调用hello这个action中的say方法 方式二: http://localhost/struts2/simple/hello.action?...在这里,參数的名称是:method:say,这是最基本的,struts2正是 依据參数的名称来决定该调用哪个方法,而不是參数的值,所以參数的值能够是随意的 方式三: struts2的配置文件的action...2.假设struts2已经交给spring容器管理了。我们就能够通过注解来找action以及该action的方法了。 (推荐使用这样的方法。...这样我们你就不用在struts.xml文件里再去配置各种action,能够给struts.xml减肥啦。
1.Struts2框架的学习路线 l 第一天:Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写 l 第二天:Struts2的数据的封装、结果页面配置...--Struts2为了管理Action的配置,通过包进行管理 --> 4.Struts2的执行流程 4.1Struts2的执行流程 ?...当用户访问某一个Action的时候,先经过核心过滤器,在核心过滤器中执行一组拦截器(这组拦截器实现部分功能),执行目标Action,根据Action的返回值,进行页面跳转。..."ActionDemo2执行了..."); returnNONE; } } 6.1.3Action类继承ActionSupport类 packagetop.yangxianyang.demo2
ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对...执行时的上下文,上下文可以看作是一个容器(其实我们这里的容器就是一个Map而已),它存放的是Action在执行时需要用到的对象....4. struts2中获得request、response和session (1)非IoC方式 方法一:使用org.apache.struts2.ActionContext类,通过它的静态方法getContext...); 细心的朋友可以发现这里的session是个Map对象, 在Struts2中底层的session都被封装成了Map类型....IoC方式(即使用Struts2 Aware拦截器) 要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点。
板斧1:找不到action的错误 在struts.xml中参考如下配置 1 2 3 ... 4 global-results -> global-exception-mappings -> action 板斧2:404/500之类的常规错误 呃,这个struts2处理不了,得靠web.xml...struts2中所有action的方法执行会先经常拦截器,所以拦截器是处理异常的好机机(比如:记录异常到日志文件、转换成友好异常信息) 1 package com.cnblogs.yjmyzz.Interceptor...另:如果把3.b)中Action方法里的testMyException()注释掉,换成testException(),即抛出普通异常,则异常信息将记录到test-logback.log中 d) struts...最后,对于程序员更重要的是,不用手动写try/catch之类的代码了,干活更轻松 (妈妈再也不担心我的异常了) 附:ajax的统一异常处理,请移步 Struts2、Spring MVC4 框架下的ajax
首先action是用来处理请求的, 这里struts2中的action的3中创建方式。 1.无侵入性的创建方式。 无侵入性:使用第三方的框架,不直接继承或实现第三方提供的类或者接口就说是无侵入性的。...的方法"); return Action.SUCCESS; } } 2.继承struts2提供的ActionSupport类 使用继承ActionSupport类的方式来创建Action...,在Action中可以使用struts2提供的功能 public class HelloAction2 extends ActionSupport{ public String hello(){...Action接口来创建Action 实现接口来创建Action需要重写execute方法,这种使用的比较少 public class HelloAction3 implements Action{...action"); return Action.SUCCESS; } } 上面三种方式中,1,2相对使用较多
整合了spring就不同了,orz struts2单独使用时action由struts2自己负责创建;与spring集成时,action实例由spring负责创建(依赖注入)。...这导致在两种情况下struts.xml配置文件的略微差异。 假如:LoginAction在包com.csu.action中。...1. struts2单独使用时,action的class属性为LoginAction的全路径名,如下: <action name="login" class="com.csu.action.LoginAction... struts2与spring集成时,class属性是spring的applicationContext.xml中配置的bean的id属性值。...//struts.xml
如何访问 WEB 资源 和 ServletAPI 解耦的方式 : 为了避免与 ServletAPI 耦合在一起,方便 Action 做单元测试,Struts2 对 HttpServletRequest,...,HttpServletContext 对应的 Map 对象来保存和读取数据 使用 ActionContext(方法 1): ActionContext 是 Action 执行的上下文对象,在 ActionContext...中保存了 Action 执行所需要的所有对象,Parameters,request,session 等。...index.jsp(展示 body 标签部分) ToPage2 ObjectAction.java image.png struts.xml(展示 package 节点部分) image.png showPage.jsp
我们上一节已经将action基本的配置和使用讲了,接下来我们讲以下struts一些小知识点: namespac: 上一节学习action的时候我们访问我们jsp文件时候使用的: http://localhost...:8080/testStruts2/hello 这个路径,有同学就会问,为啥只能用这个路径, 其实我们也可以用: http://localhost:8080/testStruts2/hello.action...配置文件,我们的namespace是一个“/”,不含有其他东西,如果namespace为空或者为"/",我们来尝试一下: http://localhost:8080/testStruts2/dd/ddd...默认action: 当我们访问页面时候,当你访问的页面不存在的时候,会出现错误,所以我们可以为struts设置一个默认页面,当没有用户想访问的页面的时候,我们为用户默认返回一个页面。 <action name="index" class
领取专属 10元无门槛券
手把手带您无忧上云