一个简单的Action里面的核心方法只有一个execute(); 定义多个核心方法的Action,有如下3种方式: 为Action配置method属性 动态方法调用 使用通配符映射方式 动态方法调用是指采用如下格式调用...Action中对应的方法: 也就是在JSP页面的表单中这样写:(假如Action类名为:ope,里面有核心方法sub()、add()、mul()、div()) 在struts.xml中只需要配置该Action,而不必配置每个方法,配置格式: <action name="Action名字...div"} 如果sturts的版本是2.5的话,struts.xml的配置需要加多标签,表示允许使用action里面的哪些方法。
execute方法即可 或者实现Action接口 不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法 ------------------------...:com.bjsxt.struts2.front.action.IndexAction1 在IndexAction1这个类中找到execute()方法,返回一个字符串。...如:success,input,login,none等 如果我们这里没有class,则他默认的会去调用:com.opensymphony.xwork2.Action这个接口中的execute()方法 还有如果我们在...来决定 具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容 具体Action的实现可以是一个普通的java类,里面有public String execute方法即可... 或者实现Action接口 不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法
,好处在于可以直接使用Struts2封装好的方法 package com.ncepu.struts; import com.opensymphony.xwork2.ActionSupport; public...1、action不一定非得执行execute方法,可以指定调用具体的方法。...不写的话默认为execute方法 action方法中的method方法指定调用具体的方法。..."> /index.jsp 2、DMI 动态方法调用 用!...add”>添加学生 自动调用Action1下面的add方法 也可直接访问 http://localhost:8080/Struts2_DMI/user!
其实上面过程还省略了一些过程: 就是一个请求到了action的name的时候并不会直接转到我们的页面,而是会转到action对应的类,上面的struts省略了这一步,但是struts2帮我们默认执行了这一个过程...的主配置文件action中添加一个class=“”,并在项目的testStruts2中添加一个action类,这个action类可以有三种方法来写,但是都要包含execute方法。...,返回一个success字符串,另一个实现Action方法,返回SUCCESS。...动态方法调用 定义一个action并不一定实现Action接口,同时也可以不执行execute方法,我们只要将action里面的method属性改为要执行的方法就行,就像这样: 就是这样,理论上我们再Action类中含有execute方法不会产生什么影响,但是如果我们将Action类中的方法改为String Add()呢?
这里写图片描述 ---- 小总结 如果我们使用到了Struts2一些特用的功能,我们就需要继承ActionSupport 如果我们没用到Struts2的特殊功能,只要平凡写一个Java类行了。...Aware实际就是一种拦截器,拦截代码在执行Action之前执行、将资源注射到Action中 实现SessionAware, RequestAware, ApplicationAware接口,它就要在程序中实现三个方法...我们请求服务器处理都是通过Action类来完成的,但是呢,Action类的业务方法都是返回字符串。因此,Struts在节点中提供了类型为stream的type值。...代码: /** * 访问Action的业务方法仅仅返回的是字符串。...> ---- 模型驱动 什么是模型驱动 在Struts2中模型驱动就是用来封装数据的..完成数据的自动封装.
默认的Action!... 默认的action的引用;当别人访问这个action的时候,如果找不到对应的action 默认就用这个...action了, 如果没有默认action的引用,那么我们在url中输入一个地址时候,action不能在struts.xml 文件中找到,那么这时就会报错,但是如果有了默认的action引用,就不会出现这种情况了...name="index"> /default.jsp ... --------------------------------------Hongten---------------------
最近在用struts2遇到一个怪问题,struts2的默认方法老是执行两次,搞了大半天都没有找到,在最后即将放弃时终于找打了,原来是响应的页面有 一个图片标签,而图片标签请求的地址不存在,它就默认再次请求了当前请求的...url,造成了两次执行struts2的方法。...为此特做下次笔记,给自己和大家 分享,同时还在网络上搜索其它几个造成的方法。...1,被响应的图片URL不存在,导致请求原谅url而执行了两次; 2,ajax模式下,调用的action方法不能为get*方式命名,内中机理未知; 结论:action中方法最好不要以.../s:form> 解决办法: 原因是,form表单提交会被struts2当作action执行.
在我们定义Action的时候会希望有一个默认的action在写错action时或者不写action时不至于报错 这里我只写一个简单的strut.xml例子 /index.jsp <action name="index" class="com.pengli.struts.parampack.MyActionOne
struts2关于action拦截器使用方法 现记录如下 以便将来取用 struts2 与spring与hibernate整合 struts2中拦截action 业务要求: 后台输入 http:...现在使用 Struts2自定义拦截器 所有的Struts 2的拦截器都直接或间接实现接口com.opensymphony.xwork2.interceptor.Interceptor。...该接口提供了三个方法: 1) void init(); 在该拦截器被初始化之后,在该拦截器执行拦截之前,系统回调该方法。对于每个拦截器而言,此方法只执行一次。...2) void destroy();该方法跟init()方法对应。在拦截器实例被销毁之前,系统将回调该方法。...该方法会返回一个字符串作为逻辑视图。
从一个Action直接跳到另一个Action中,Struts提供了两种结果类型可以实现:chain、redirect。...-- 第一个Action --> result_resultRedirect </action
Action类的实现方式 本人独立博客https://chenjiabing666.github.io 所有的Action类必须有无参构造方法 Action类的实现方式 如果想要浏览器可以映射到其中的方法...,那么必须返回一个String,使用这个值指示需要跳转的视图或者Action Struts中的Action类实际上可以是一个POJO类,其中也是可以定义许多的方法,但是如果在struts.xml的配置文件中特指调用哪个方法的话...,那么就会默认会调用名为execute的方法。...后续将会讲如何调用类中其他的方法 普通的pojo类 不需要实现或者继承任何类,只是一个普通的类 这个普通的类中有一个名为execute的方法,返回的一个字符串 public class SimpleAction...同上 实现 /** * action类: 这里实现的Action接口 * @author chenjiabing */ public class TestAction implements Action
Action类访问Servlet API 本人独立博客https://chenjiabing666.github.io Struts2并未直接和Servlet API耦合,这是Struts2的一个改良之处...只不过存放和获取属性的方法用的分别是put和get Map getParameters()获取所有的请求参数,类似调用HttpServletRequest对象的getParameterMap()方法 Map...,就是上面方法中的第一个 我们在Action方法中使用这个设置request域,session域中的属性 public class SimpleAction implements Action {...Servlet API功能更加强大 实现接口访问Servlet API 实现接口访问对一个Action类的污染实在太严重了,这个是不推荐使用的,可以了解一下 可以实现的接口 ServletContextAware...实现该接口的Action可以直接访问用户请求的ServletContext实例 ServletRequestAware实现该接口的Action可以直接访问用户请求的HttpServletRequest实例
当一个Action处理类中处理多个业务时,action的配置 文件将会急剧增加,导致配置文件很臃肿的问题。 struts2提供了两种方案来解决这个问题。...一种是动态方法调用,另一种是使用通配符来配置Action。 这里只讲使用通配符的方式来配置Action....phone; private UserDao userDao = new UserDaoImpl(); //这个List必须为处理类的属性 才可以在列表页面中获取数据 如果只是在方法的内部声明将无法获取...//并且提供其get/set方法 private List list; private User user; //添加 public String...> 注意:使用通配符请求action的方式和以前一样
1.我们使用最原始的方法去查找action。不同注解。 struts.xml文件先配置 <!...訪问指定方法 方式一: 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的方法了。 (推荐使用这样的方法。
首先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相对使用较多
ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对...4. struts2中获得request、response和session (1)非IoC方式 方法一:使用org.apache.struts2.ActionContext类,通过它的静态方法getContext...()获取当前Action的上下文对象。...HttpServletResponse response = ctx.get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE); 细心的朋友可以发现这里的session是个Map对象, 在Struts2...().setAttribute("uList", uList); return SUCCESS; } //其他代码片段 } (2)IoC方式(即使用Struts2
整合了spring就不同了,orz struts2单独使用时action由struts2自己负责创建;与spring集成时,action实例由spring负责创建(依赖注入)。...假如:LoginAction在包com.csu.action中。...1. struts2单独使用时,action的class属性为LoginAction的全路径名,如下: /student/studentindex.jsp 2. struts2...//struts.xml
我们上一节已经将action基本的配置和使用讲了,接下来我们讲以下struts一些小知识点: namespac: 上一节学习action的时候我们访问我们jsp文件时候使用的: http://localhost...这两种是默认的方法,但是同样我们也可以自定义。...所以我们就知道了为空或者“/”是一种默认路径,当项目中没有我们指定的路径的时候(dd/ddd/hello),我们这个namespace为空或者为“/”的这个action便承担起了默认访问的作用。...默认action: 当我们访问页面时候,当你访问的页面不存在的时候,会出现错误,所以我们可以为struts设置一个默认页面,当没有用户想访问的页面的时候,我们为用户默认返回一个页面。 只要在package里面加上 就可以让当用户访问页面不存在的时候,访问我们的默认页面。
如何访问 WEB 资源 和 ServletAPI 解耦的方式 : 为了避免与 ServletAPI 耦合在一起,方便 Action 做单元测试,Struts2 对 HttpServletRequest,...,HttpServletContext 对应的 Map 对象来保存和读取数据 使用 ActionContext(方法 1): ActionContext 是 Action 执行的上下文对象,在 ActionContext...中保存了 Action 执行所需要的所有对象,Parameters,request,session 等。...方法,这样就可以在所有的 action 方法中去调用该 requestMap。...,我们可以知道第一种方法假若有好多的 action 方法需要调用域对象那么每个方法都必须实现,而第二种方法只需实现一次,所以在实际开发中视情况而选择对应的方法去实现。
在struts2中,我们能够实现对action的全部方法进行校验或者对action的指定方法进行校验。 对于输入校验struts2提供了两种实现方法: 1. 採用手工编写代码实现。 2....validate()方法会校验action中全部与execute方法签名同样的方法。 当某个数据校验失败时。...action能够继承ActionSupport ),假设系统的fieldErrors包括失败信息, struts2会将请求转发到名为input的result。...2.手工编写代码实现对action指定方法输入校验 通过validateXxx()方法实现。 validateXxx()仅仅会校验action中方法名为Xxx的方法。当中Xxx的第一个字母要大写。...3、系统通过反射技术先调用action中的validateXxx()方法,Xxx为方法名。 4、再调用action中的validate()方法。
领取专属 10元无门槛券
手把手带您无忧上云