学习
实践
活动
工具
TVP
写文章

Struts2Action实现

Action实现方式 1.1. Action实现方式 1.2. 普通pojo 1.3. 继承ActionSupport 1.4. 实现Action Action实现方式 Action实现方式 如果想要浏览器可以映射到其中方法,那么必须返回一个String,使用这个值指示需要跳转视图或者Action Struts中 Action实际上可以是一个POJO,其中也是可以定义许多方法,但是如果在struts.xml配置文件中特指调用哪个方法的话,那么就会默认会调用名为execute方法。 后续将会讲如何调用中其他方法 普通pojo 不需要实现或者继承任何,只是一个普通 这个普通中有一个名为execute方法,返回一个字符串 public class SimpleAction 同上 实现 /** * action: 这里实现Action接口 * @author chenjiabing */ public class TestAction implements

17810

Struts2之Action实现方式

Action实现方式 本人独立博客https://chenjiabing666.github.io 所有的Action必须有无参构造方法 Action实现方式 如果想要浏览器可以映射到其中方法 ,那么必须返回一个String,使用这个值指示需要跳转视图或者Action Struts中Action实际上可以是一个POJO,其中也是可以定义许多方法,但是如果在struts.xml配置文件中特指调用哪个方法的话 后续将会讲如何调用中其他方法 普通pojo 不需要实现或者继承任何,只是一个普通 这个普通中有一个名为execute方法,返回一个字符串 public class SimpleAction 实现这个,同样是还要实现其中execute方法 其中也是和ActionSupport一样,封装了许多字符串静态变量,我们自己调用即可。 同上 实现 /** * action: 这里实现Action接口 * @author chenjiabing */ public class TestAction implements Action

54740
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Struts2之Action访问Servlet API

    Action访问Servlet API 本人独立博客https://chenjiabing666.github.io Struts2并未直接和Servlet API耦合,这是Struts2一个改良之处 )直接传入一个Map实例,将Map实例中key-value转换成属性名,属性值 使用 如果想要使用这个,当然需要实例化对象,其中提供了一个获取对象静态方法,就是上面方法中第一个 我们在Action 实现接口访问对一个Action污染实在太严重了,这个是不推荐使用,可以了解一下 可以实现接口 ServletContextAware实现该接口Action可以直接访问用户请求ServletContext 实例 ServletRequestAware实现该接口Action可以直接访问用户请求HttpServletRequest实例 ServletResponseAware实现该接口Action可以直接访问请求 中使用 public class SimpleAction implements Action { @Override public String execute(){ ​

    46250

    Struts2 总结之Action 访问 WEB 资源

    接着上次博客内容我继续分享我所学到知识,和自己在学习过程中所遇到问题以及解决方案。当然,如果读者发现任何问题均可以在下方评论告知我,先谢,==老被管理员移除,再来一遍==! 在 Action 中访问 WEB 资源 web 资源 所谓 WEB 资源是指 HttpServletRequest、HttpServletResponse、ServletContext 等原生 API 中保存了 Action 执行所需要所有对象,Parameters,request,session 等。 使用 ActionContext 获取域对象代码演示 从 index.jsp 页面发送请求到 showPage.jsp,并将该请求交由 Struts Action ObjectAction.java ,我们可以知道第一种方法假若有好多 action 方法需要调用域对象那么每个方法都必须实现,而第二种方法只需实现一次,所以在实际开发中视情况而选择对应方法去实现。

    45250

    strutsServlet,action转到jsp后,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)

    问题:使用struts2,如何处理action路径?还有,在action转到jsp中,如何写js,css,图 片路径? 这时候jsp原来图片定位可能就都出错了) 答:action的话,就不需要关心路径问题。我们不使用action命名空间。 而解决jsp路径问题,我觉得以下方式就基本完美了(有问题,请各位前辈指出): 第一步:在jsphead中添加base标签和一段java <%     String path = request.getContextPath 也就是说,需要写从项目根目录算起绝对路径,但去掉开头"/" 第三步:所有action跳转,form提交写action路径,都不要带目录位置。 第三步,就不必管action路径如何了。 这个方法,可以兼容使用action和不使用action两种情况 另外,在struts.xml中配置jsp路径时候使用项目的绝对路径。

    58430

    Spark RDDAction

    RDDAction是相对Transformation另一种操作。 Transformation代表计算中间过程,从一个RDD生成新RDD;而Action代表计算结束,一次Action调用之后,不再生成新RDD,结果返回到Driver程序。 鉴于Action具有这样特点,所以Action操作是不可以在RDD Transformation内部调用。 比如,下面的调用是不允许: rdd1.map(x => rdd2.values.count() * x) Transformation只是建立计算关系,而Action才是实际执行者。 每个Action都会调用SparkContextrunJob方法向集群正式提交请求,所以每个Action对应一个Job。

    41460

    zTree实现地市县三级级联Action

    zTree实现地市县三级级联Action ProvinceAction.java: /** * @Title:ProvinceAction.java * @Package:com.gwtjs.struts.action.area @author:Youhaidong(游海东) * @date:2014-5-11 上午12:27:54 * @version V1.0 */ package com.gwtjs.struts.action.area com.gwtjs.model.Province; import com.gwtjs.service.ProvinceService; import com.gwtjs.struts.BaseAction; /** * 功能说明 * 改动者 改动日期 * 改动说明 *

    Title:ProvinceAction.java

    *

    Description:游海东个人开发

    *

    Copyright * @return * @throws Exception * @see com.gwtjs.struts.BaseAction#execute() */ @Override @Action

    6520

    输出图案问题思路

    一、问题导入 编写一个程序,只用两条输出语句,生成一个像半个5*5正方形形状(直角三角形)#符号图案: ##### #### ### ## # 二、问题分析 我们可以采用消减法,先把它想象成一个5*5 那么,接下来应该怎样修改代码,使它产生半正方形图案呢? 如果我们观察上面的程序清单并把它与自己所需要半正方形输出进行比较,可以发现问题在于条件表达式hashNum <= 5上。 我们可以把对问题分析通过一张表格来总结下 行号 所需值 行号*-1 行号与所需值之差 1 5 -5 6 2 4 -4 6 3 3 -3 6 4 2 -2 6 5 1 -1 6  差是一个固定值6。 编写一个程序,只用两条输出语句产生一个类似侧三角形形状#符号图案: # ## ### #### ### ## # 根据前一个问题分析,我们知道做法如下: 1,使用一个循环,显示一行特定长度符号。 在前一个问题中,我们需要从大到小数而不是从小到大数,因此用一个较大数减去循环变量就可以了。在这个问题中,我们先是从小到大然后再从大到小。

    39040

    winform总结2> Action ,Action,func,委托相关理解

    1,他们是什么: Action 封装一个方法,该方法不具有参数并且不返回值。 Action<> 封装一个方法,该方法具有最多16个参数并且不返回值。 目前了解到好像也只有委托是需要传递一个方法,既然这里三个方式都是封装一个方法,那么这种写法就肯定是可以用到给委托传递参数一任务时用,想想刚开始学习委托时候,要给他传递一个方法,还要再写一个方法去传递 那么有这些结构做一个中间层,所有问题都得到很好解决,结构也不乱了,学习成本也低了。 那么他们究竟是什么,我仔细思考过这个问题,现在我理解就是他们都是委托一种表达方式,就像事件一样,这样理解所有的疑惑就都解开了。 >"); Action a = new Action(() => { Console.WriteLine("Action

    31320

    GitHub Action 如何禁用

    我 Fork 了小伙伴 ant-design-blazor 仓库,这个仓库设置了每天自动同步样式,这个 Action 用到了源仓库密钥,在我 Fork 仓库一定跑不通过,于是每天我就收到一次构建不通过信息 本文告诉大家如何禁用自己 Fork 某个仓库 Action 执行 这是我 Fork ant-design-blazor仓库,每天都告诉我构建失败 解决方法是禁用这个 Fork 仓库 Action 构建,毕竟需要自动构建都是将代码推送到源仓库,此时源仓库 Action 都能触发,也就是我仓库 Action 其实没啥用 点击仓库设置,进入 Actions 页面,点击禁用 如果我表示不让所有 Fork 我仓库小伙伴都需要做这个设置,我想要让我代码仅仅只是在我仓库运行,可以如何做? 简单方法是添加一个判断 if: github.repository == 'lindexi/doubi' 别的小伙伴 Fork 仓库时候,拿到 repository 值就是 小伙伴名字/doubi

    8910

    不伦不类Action Script 3.0

    因工作需要,有可能要接手以前一位Flash程序员同事代码,今天看了下Action Script 3.0,发现这玩意儿真的有点那个啥... 打开Flash CS 4,新建一个Action Script3.0文件,在第一帧写几行代码: 代码一: var o = "123"; trace(typeof(o)) //输出string o = 123 ; trace(typeof(o)) //输出number 好象还不错,有点c#3.0中var味道,能根据赋值不同,自动推断变量类型. ,i做为数组数字下标进行元素访问(比如:Citys[1]) 改成(即把循环变量类型明确定义成String): 代码三: for(var j:String in Citys){  trace("j=" (明明在代码二中系统自动推断出是number型,现在我顺着它系统定义成Number型却不能编译) 也许是我道行太浅,理解不了Adobe玄机。

    29490

    Vuex- Action { commit }

    increment (context) { context.commit('increment') } } ES2015参数解构 (opens new window)简化代码 actions: { increment ({ commit }) { commit('increment') } } 解构概念 解构(Destructuring):是将一个数据结构分解为更小部分过程 可以大大简化数组或者对象里面的元素赋值语句。 数组解构,数组本身并没有发生任何改变,解构是对新变量(可能是对象同名属性)赋值。 实际用法 相当于把对象属性根据接受字面量进行一一映射 // options 上属性表示附加参数 function setCookie(name, value, options) { options.path, domain = options.domain, expires = options.expires; // 设置 cookie 代码

    18010

    记账问题汇总

    (注:暂时先记录这些问题,后期会持续更新) 1,用函数实现财务现金记账 #include<stdio.h> float cash; //定义全局变量,保存现金余额 int main(void) {

    42250

    回溯问题框架

    文章目录 N叉树前序遍历 回溯框架 示例 4*4数独 N叉树前序遍历 void preorder(Node* node) { cout << "value:" << node->val << endl; for (Node* n : node->children) { preorder(n); } return; } 其实回溯,可不就是N叉树前序遍历带上功能嘛

    8910

    java加载常见几种问题理解加载机制

    (4)SubClass存在父,则调用父构造函数,你可以使用super来指定调用哪个构造函数(也就是Beetle()构造函数所做第一件事)。 基构造过程以及构造顺序,同派生相同。 *方法对进行反射调用时候,如果类还没有进行过初始化,马上对其进行。 3.初始化某个子类,当初始化某个子类时,该类所有父都会被初始化。 可能包括验证如:这个是否有父;这个是否继承了不允许被继承;如果这个不是抽象,是否实现了其父或接口中要求实现所有方法…… 3、字节码验证,主要工作是进行数据流和控制流分析, 如果一个方法体字节码没有通过字节码验证,那肯定是有问题;但如果一个方法体通过了字节码验证,也不能说明其一定就是安全静态方法,触发初始化 2:加载时候在准备过程中为静态变量分配内存并初始化默认值 singleton=null count1=0,count2=0 3:初始化,为静态变量赋值和执行静态代码快

    6030

    Scanner next、nextLine 问题

    Scanner next、nextLine 问题 问题 在写一个题目的时候,发现了一个问题。 next() 、nextLine()、nextInt() 之间连续使用问题 连续多行输入,最好全部使用nextLine,最后需要什么类型在进行各自转换。 有一个很严重问题 nextLine 跟在 nextInt 、nextDouble、next 后面会自动读取 回车键结束符作为 一个输入。 解决一 这种写法尽量不要写,都写成nextLine,在根据自己需要转化成 自己想要类型 public static void main(String[] args) { Scanner sc.nextLine()); String str = sc.nextLine(); } 程序运行结果 解决二 还有一种解决方法,就是将nextLine 换成next,next 只读取输入字符

    11630

    dp 找零钱问题

    这类问题,需要维护,之前状态,当前状态是 (当前 - 当前值) 上一个状态最值相关 零钱兑换 给定不同面额硬币 coins 和一个总金额 amount。 编写一个函数来计算可以凑成总金额所需最少硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 你需要让组成和完全平方数个数最少。 是否可以将这个数组分割成两个子集,使得两个子集元素和相等。 sum += x; } if(sum % 2 == 1){ return false; } // 使用背包问题动态规划进行求解

    18530

    【Android】RxJava使用(二)Action

    接下来就是使用本次主角Action来代替Subscriber Action 上部分代码使用Action来代替Subscriber得到代码是这样: Observable.just( 什么是Action Action是RxJava 一个接口,常用Action0和Action1。 Action0: 它只有一个方法 call(),这个方法是无参无返回值;由于 onCompleted() 方法也是无参无返回值,因此 Action0 可以被当成一个包装对象,将 onCompleted ) 也是单参数无返回值,因此 Action1 可以将 onNext(obj)和 onError(error) 打包起来传入 subscribe() 以实现不完整定义回调 Action使用 现在有个疑问,为什么使用Action也能达到使用Subscriber结果?进subscribe(Action1 onNext)源码看看。 ?

    43560

    Netty in action—Netty中ByteBuf

    大家好,又见面了,我是你们朋友全栈君。 正如之前所说,网络传输基本单位是字节。Java NIO 提供了ByteBuffer作为它容器,但是这个使用起来比较复杂和麻烦。 Netty提供了一个更好实现:ByteBuf。 ByteBufAPI Netty为数据处理提供API通过抽象ByteBuf和接口ByteBufHolder暴露出来。 ("Netty in Action rocks!" buf = Unpooled.copiedBuffer("Netty in Action rocks!" ByteBufUtil ByteBufUtil提供了用于操纵ByteBuf静态帮助方法。因为这API是通用,与池无关,因此这些方法已经在分配内存之外实现了。

    8820

    滑动窗口问题框架

    文章目录 算法框架 最小覆盖子串 最长无重复子串 这种问题理解起来不难,但是框架写出来就有点长了,毕竟细节东西有点多哈。 什么时候右滑,右滑多少?什么时候左滑,左滑多少? 这些问题平时都会说,但是放到真实场景中,总容易想不明白。 if R < len(Array): 更新状态 if 状态满足条件: 可选更新最优值位置 += 1 if 状态满足条件: 可选更新最优值位置 else: # 一旦窗口所在区间不再满足条件即跳出,去移动右端点 break 可选对于L,R端点后续处理 return 最优值 ---- 最小覆盖子串 #include <iostream> #include

    8220

    扫码关注腾讯云开发者

    领取腾讯云代金券