具体实体的返回可以有用户自己定义的Action来决定 具体的手段是根据返回的字符串找到对应的配置项,来决定实体的内容 具体Action的实现可以是一个普通的java类,里面有public String...execute方法即可 或者实现Action接口 不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法 ------------------------...如:success,input,login,none等 如果我们这里没有class,则他默认的会去调用:com.opensymphony.xwork2.Action这个接口中的execute()方法 还有如果我们在...我们在真正开发过程中就用:class="com.bjsxt.struts2.front.action.IndexAction3"这种方法; 其他的都不用;就是从ActionSupport...方法即可 或者实现Action接口 不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法
,好处在于可以直接使用Struts2封装好的方法 package com.ncepu.struts; import com.opensymphony.xwork2.ActionSupport; public...1、action不一定非得执行execute方法,可以指定调用具体的方法。...不写的话默认为execute方法 action方法中的method方法指定调用具体的方法。...name=12345&password=12345″>添加学生 其中name和password是 action中的参数,并且有相应的getter和setter方法 2、使用Domain Model...user.name=a&user.password=8″>添加用户 其中user是action中的参数,有getter和setter方法,而user是我们自己定义的域模型,里面有name和password
其实上面过程还省略了一些过程: 就是一个请求到了action的name的时候并不会直接转到我们的页面,而是会转到action对应的类,上面的struts省略了这一步,但是struts2帮我们默认执行了这一个过程...的主配置文件action中添加一个class=“”,并在项目的testStruts2中添加一个action类,这个action类可以有三种方法来写,但是都要包含execute方法。...动态方法调用 定义一个action并不一定实现Action接口,同时也可以不执行execute方法,我们只要将action里面的method属性改为要执行的方法就行,就像这样: action name...,我们可以根据需要在同一个Action类中用不同的方法处理。...> action> 就是这样,理论上我们再Action类中含有execute方法不会产生什么影响,但是如果我们将Action类中的方法改为String Add()呢?
这里写图片描述 ---- 小总结 如果我们使用到了Struts2一些特用的功能,我们就需要继承ActionSupport 如果我们没用到Struts2的特殊功能,只要平凡写一个Java类行了。...分析: 第一种方法:需要导入Servlet的包,与Struts耦合了 第二种方法:只能在业务方法中使用ActionContext类得到对应的Map对象,如果有多个方法,那么每个方法都需要写类似的代码 第三种方法...我们请求服务器处理都是通过Action类来完成的,但是呢,Action类的业务方法都是返回字符串。因此,Struts在节点中提供了类型为stream的type值。...代码: /** * 访问Action的业务方法仅仅返回的是字符串。...> ---- 模型驱动 什么是模型驱动 在Struts2中模型驱动就是用来封装数据的..完成数据的自动封装.
Action类的实现方式 本人独立博客https://chenjiabing666.github.io 所有的Action类必须有无参构造方法 Action类的实现方式 如果想要浏览器可以映射到其中的方法...,那么必须返回一个String,使用这个值指示需要跳转的视图或者Action Struts中的Action类实际上可以是一个POJO类,其中也是可以定义许多的方法,但是如果在struts.xml的配置文件中特指调用哪个方法的话...,那么就会默认会调用名为execute的方法。...后续将会讲如何调用类中其他的方法 普通的pojo类 不需要实现或者继承任何类,只是一个普通的类 这个普通的类中有一个名为execute的方法,返回的一个字符串 public class SimpleAction...类 实现这个类,同样是还要实现其中的execute方法 其中也是和ActionSupport一样,封装了许多的字符串静态变量,我们自己调用即可。
首先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{...@Override public String execute() throws Exception { System.out.println("使用实现Action接口的方式来创建
当一个Action处理类中处理多个业务时,action的配置 文件将会急剧增加,导致配置文件很臃肿的问题。 struts2提供了两种方案来解决这个问题。...一种是动态方法调用,另一种是使用通配符来配置Action。 这里只讲使用通配符的方式来配置Action....才可以在列表页面中获取数据 如果只是在方法的内部声明将无法获取 //并且提供其get/set方法 private List list; private User...-- *表示匹配所有请求的action名 *表示匹配任意多个字符 {1}表示匹配第一个*所代表的内容 如:*User 可以匹配...> 注意:使用通配符请求action的方式和以前一样
在我们定义Action的时候会希望有一个默认的action在写错action时或者不写action时不至于报错 这里我只写一个简单的strut.xml例子 action-ref> action name="index" class="com.pengli.struts.parampack.MyActionOne...method="Def"> /index.jsp action...> 除了这个也可以用全局的 action-ref> action name="index" class="com.pengli.struts.parampack.MyActionOne
在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()方法。
1.我们使用最原始的方法去查找action。不同注解。 struts.xml文件先配置 action 默认运行的是NewsInfoAction中的excute方法。...say.action 能够调用hello这个action中的say方法 方式二: http://localhost/struts2/simple/hello.action?...在这里,參数的名称是:method:say,这是最基本的,struts2正是 依据參数的名称来决定该调用哪个方法,而不是參数的值,所以參数的值能够是随意的 方式三: struts2的配置文件的action...2.假设struts2已经交给spring容器管理了。我们就能够通过注解来找action以及该action的方法了。 (推荐使用这样的方法。
参考自:http://blog.csdn.net/softimes/article/details/7084984 在struts1.x Action 类的execute方法中,有四个参数,其中两个就是...而在Struts2中,并没有任何参数。 因此,就不能简单地从execute方法获得HttpServletResponse或HttpServletRequest对象了。...但在Struts2 Action类中仍然有很多方法可以获得这些对象。 下面就列出四种获得这些对象的方法。...1、Action继承Struts2 的Servlet*Aware 拦截器 这种方式要求Action继承org.apache.struts2.interceptor中对应的对象,如:HttpServletResponse...3、使用ActionContext类 这种方法比较简单,我们可以通过org.apache.struts2.ActionContext类的get方法获得相应的对象。
ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对...4. struts2中获得request、response和session (1)非IoC方式 方法一:使用org.apache.struts2.ActionContext类,通过它的静态方法getContext...()获取当前Action的上下文对象。...session是个Map对象, 在Struts2中底层的session都被封装成了Map类型....同样把这条语句放在构造方法中也是错误的。
一个简单的Action里面的核心方法只有一个execute(); 定义多个核心方法的Action,有如下3种方式: 为Action配置method属性 动态方法调用 使用通配符映射方式 动态方法调用是指采用如下格式调用...Action中对应的方法: action="Action名字!...方法名字"> 也就是在JSP页面的表单中这样写:(假如Action类名为:ope,里面有核心方法sub()、add()、mul()、div()) action="ope!..." class="包名.Action类名"> jsp action> 在JSP中用Javascript动态改变表单action中的属性 <...div"} 如果sturts的版本是2.5的话,struts.xml的配置需要加多标签,表示允许使用action里面的哪些方法。
从一个Action直接跳到另一个Action中,Struts提供了两种结果类型可以实现:chain、redirect。...redirect就像Servlet中的重定向,它也不能够保留request对象保存的参数。但是chain可以。所以两种的区别就在于chain能够保留request对象,而redirect不可以。...-- 第一个Action --> action name="test_*" class="com.action.TestAction" method="{1}"> result_resultRedirect action...-- 第二个Action --> action name="result_*" class="com.action.ResultAction" method="{1}">action
整合了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... /student/studentindex.jsp 2. struts2...与spring集成时,class属性是spring的applicationContext.xml中配置的bean的id属性值。
Action类访问Servlet API 本人独立博客https://chenjiabing666.github.io Struts2并未直接和Servlet API耦合,这是Struts2的一个改良之处...)直接传入一个Map实例,将Map实例中的key-value转换成属性名,属性值 使用 如果想要使用这个类,当然需要实例化的对象,其中提供了一个获取对象的静态方法,就是上面方法中的第一个 我们在Action...方法中使用这个设置request域,session域中的属性 public class SimpleAction implements Action { @Override public...实现接口访问对一个Action类的污染实在太严重了,这个是不推荐使用的,可以了解一下 可以实现的接口 ServletContextAware实现该接口的Action可以直接访问用户请求的ServletContext...实例 ServletRequestAware实现该接口的Action可以直接访问用户请求的HttpServletRequest实例 ServletResponseAware实现该接口的Action可以直接访问请求的
默认的Action!...action-ref name="index">action-ref> 默认的action的引用;当别人访问这个action的时候,如果找不到对应的action 默认就用这个...action了, 如果没有默认action的引用,那么我们在url中输入一个地址时候,action不能在struts.xml 文件中找到,那么这时就会报错,但是如果有了默认的action引用,就不会出现这种情况了...name="index">action-ref> action name="index"> /default.jsp ...action> --------------------------------------Hongten---------------------
struts2关于action拦截器使用方法 现记录如下 以便将来取用 struts2 与spring与hibernate整合 struts2中拦截action 业务要求: 后台输入 http:...现在使用 Struts2自定义拦截器 所有的Struts 2的拦截器都直接或间接实现接口com.opensymphony.xwork2.interceptor.Interceptor。...()方法的空实现,这样我们只需要实现intercept方法。...> 一旦在某个包下定义了默认拦截器栈,在该包下的所有action都会使用此拦截器栈。...对于那些不想使用些拦截器栈的action,则应该将它放置在其它的包下。
1.Struts2框架的学习路线 l 第一天:Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写 l 第二天:Struts2的数据的封装、结果页面配置...--Struts2为了管理Action的配置,通过包进行管理 --> /* 3.8改写Action中的方法的返回值 /** * 提供一个方法...n method :执行Action中的哪个方法的方法名,默认值execute n converter :用于设置类型转换器 5.4常量的配置...-- 动态方法访问的方式 --> action name="customer"class="top.yangxianyang.demo3.CustomerAction">action> l 开启动态方法访问
最近在用struts2遇到一个怪问题,struts2的默认方法老是执行两次,搞了大半天都没有找到,在最后即将放弃时终于找打了,原来是响应的页面有 一个图片标签,而图片标签请求的地址不存在,它就默认再次请求了当前请求的...url,造成了两次执行struts2的方法。...为此特做下次笔记,给自己和大家 分享,同时还在网络上搜索其它几个造成的方法。...1,被响应的图片URL不存在,导致请求原谅url而执行了两次; 2,ajax模式下,调用的action方法不能为get*方式命名,内中机理未知; 结论:action中方法最好不要以.../s:form> 解决办法: action="" οnsubmit="return false;"> 原因是,form表单提交会被struts2当作action执行.
领取专属 10元无门槛券
手把手带您无忧上云