SSH整合(2) - struts-types

SpringBoot核心特性与实战:从自动配置到生产部署 在Java企业级应用开发中,框架的配置复杂度一直是影响开发效率的关键因素。其核心原理在于通过依赖注入和控制反转实现组件解耦,而SpringBoot在此基础上通过自动配置机制,极大地简化了这一过程。这项技术的核心价值在于遵循“约定大于配置”的理念,通过起步依赖管理、内嵌服务器和Actuator监控等特性,为开发者提供开箱即用的生产级解决方案。在实际应用场景中,无论是构建微服务、RESTful API还是传统单体应用,SpringBoot都能显著提升开发效率和项目可维护性。本文聚焦于自动配置和起步依赖这两个核心 阅读详情

1. Struts2支持不同类型的返回结果:

名字 说明
Chain Result 用来处理Action链
Dispatcher Result 用来转向页面,通常处理JSP
FreeMarker Result 处理FreeMarker模板
HttpHeader Result 用来控制特殊的Http行为
Redirect Result 重定向到一个URL
Redirect Action Result 重定向到一个Action
Stream Result 向浏览器发送InputSream对象,通常用来处理文件下载
Velocity Result 处理Velocity模板
XLS Result 处理XML/XLST模板
PlainText Result 显示原始文件内容,例如文件源代码

以下是常用的4个返回类型,以及它们的官方解释。

名字说明
[Chain Result]used for [Action Chaining]
[Dispatcher Result]used for [JSP] integration
[Redirect Result]used to redirect to another URL 
[Redirect Action Result]used to redirect to another action

在struts-default.xml文件中已经有了对于所有类型Result的定义

  1. <result-types>
  2.     <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
  3.     <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
  4.     <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
  5.     <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
  6.     <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
  7.     <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
  8.     <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
  9.     <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
  10.     <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
  11.     <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
  12. </result-types>

从上述代码中可以看出在不指定Result类型的时候使用dispatcher类型。

2. 有些时候我们需要一个定义在全局的Result,这个时候我们可以在package内部定义全局的Result,例如:

  1. <global-results>
  2.     <result name="error">/Error.jsp</result>
  3.     <result name="invalid.token">/Error.jsp</result>
  4.     <result name="login" type="redirect-action">Logon!input</result>
  5. </global-results>

3. 动态返回结果

有些时候,只有当Action执行完璧的时候我们才知道要返回哪个结果,这个时候我们可以在Action内部定义一个属性,这个属性用来存储Action执行完璧之后的Result值,例如:

  1. private String nextAction;
  2. public String getNextAction() {
  3.     return nextAction;
  4. }

在strutx.xml配置文件中,我们可以使用${nextAction}来引用到Action中的属性,通过${nextAction}表示的内容来动态的返回结果,例如:

  1. <action name="fragment" class="FragmentAction">
  2.     <result name="next" type="redirect-action">${nextAction}</result>
  3. </action>

上述Action的execute方法返回next的时候,还需要根据nextAction的属性来判断具体定位到哪个Action。

【信息科学与工程学】【安全领域】第八十三篇 云安全解决方案02 企业中“搞人”与“搞事情”常见问题的分析框架。我将选取4个典型场景,每个场景都从实际管理现象出发,逐步推导出数学模型、参数设定及关联知识。 阅读详情

相关推荐

基于SSH框架的网上商城项目实战(含MySQL完整源码)

在购物车系统中,记录用户操作日志是一项常见需求。传统做法是在每个Service方法前后添加日志语句,导致大量重复代码。借助AOP,可以集中定义一个日志切面,自动捕获指定方法的执行情况。@Aspect@Componentlogger.info("调用方法: {}, 参数: {}", methodName, Arrays.toString(args));logger.info("方法 {} 执行成功,返回值: {}", methodName, result);

weixin_32673065的博客 972

ssh整合时struts出现unknown location的问题

如果你是继承的json-struts并且struts2-json-plugin-2.3.24.jar这个包也已导入 那就试试下面这种方法吧 struts> package name="json-default" extends="struts-default"> result-types> result-type name="json" clas

jxian6g的博客 1175

(进阶)构建SSH框架员工部门管理系统实战教程

本文还有配套的精品资源,点击获取 简介:SSH框架是Java Web开发中重要的三大开源框架Struts2、Spring和Hibernate的整合,本项目利用SSH框架的优势,开发一个管理员工及其部门信息的应用。详细介绍了SSH框架核心组件的系统应用,包括Struts2的MVC模式实现、Spring的依赖注入和事务管理、Hibernate的对象关系映射,以及系统部署前的数据...

weixin_42518874的博客 933

SSH2 整合小测

本贴作为ssh2整合的简单小测试

u010368765的博客 390

ANSYS HFSS 中的相控天线阵列仿真方法

相控天线阵列系统广泛使用,从国防雷达应用到商业 5G 应用。设计这些天线阵列涉及复杂的数学运算,需要全波仿真。Ansys HFSS 全场 3D 电磁仿真软件可以在合理的时间内以较低的计算成本仿真复杂的相控阵天线系统,同时考虑复杂激励、环境(即附近的天线)和平台对其性能的影响。本博客介绍了可用于有效仿真相控天线阵列的不同方法。以下是不同仿真方法的简要概述,视频链接中提供了完整的演示。ANSYS HFSS 提供 4 种不同的相控天线阵列仿真方法:1) 晶胞-无限阵列。

jkh920184196的博客 4252

pytorch gpu运行安装重点(CUDA12.3)

pytorch gpu加速

weixin_45597212的博客 3万+

Struts2支持的结果类型

struts-default.xml定义的结果类型如下: <result-types> <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/> <result-type name="dispatcher" class="org.apache

qq_19925065的博客 409

Qt中多线程的使用(一)

我们要实现的是读取大文件qtgui.index的内容加入文本框中。 很容易想到的方法: QFile* file = new QFile("E:\qtgui.index"); file-&gt;open(QIODevice::ReadOnly); QTextStream *stream = new QTextStream(file); while(!st...

yao5hed的专栏 1万+

【SSH】Myeclipse下的Struts+Spring+Hibernate开发实例

开发工具: eclipse-SDK-3.2.1、MyEclipse_5.0.1GA_E3.2、Tomcat_5.5.15、mysql-5.0.18 开始。。新建工程:名称为 login 创建Struts框架 创建 index.jsp,增加一链接指向 login.jsp Struts+Spring+Hibernate Login 按下Ctrl + N,创建 login.jsp、Login

billhu专栏 1164

Allegro Design Entry CIS 与 OrCAD Capture CIS:PCB设计工具链中的双雄对决

本文深入对比了Cadence旗下两大原理图设计工具Allegro Design Entry CIS与OrCAD Capture CIS。Allegro Design Entry CIS源自Concept HDL,定位高端,强调自顶向下的层次化设计和与Allegro PCB Editor的无缝约束管理,适合大型复杂系统及团队协作。OrCAD Capture CIS则以其出色的易用性、广泛的兼容性和强大的CIS数据库功能著称,是中小型项目及跨工具链协作的通用选择。文章从历史渊源、核心功能、适用场景等多维度剖析,

bush的博客 487

批量读取_MCGS触摸屏如何实现批量读取modbus数据的方法?

前两天,在一个QQ群里,有同行的朋友问,在MCGS中如何实现批量读取数据,因为他当时面临设备,通讯协议才是MODBUS RTU,同时厂家说地址不能分开读,必须是连续的。鉴于他提供的消息是能够设置的地方都试过了。为此,我直接告诉通过脚本,批量读取的方案。那么这个方案究竟如何实现?且看我下面慢慢道来。一、工具1.modsim:仿真PLC或者第三方设备。2.MCGS组态软件3.串口软件:在电脑中生成两不...

weixin_32511509的博客 8160

SSH 踩坑记录

一、 struts21. The content of element type “package” must match “(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,a

Eric's Blog 2790

ASM准入小助手卸载没有密码的方法:读取明文密码2024年7月有效

在一次工作过程中,电脑中意外的安装了一个ASM准入小助手软件,工作结束以后回来发现没有卸载,然后就决定把它卸载掉,但是居然给了我一个大大的提示框:由于联系不到当时给我安装的那个人了,所以一时陷入了焦灼的状态,因为我安装另一个终端准入,会直接提示冲突了。所以经过注册表(regedit)、任务管理器等各种折腾之后,最后都失败了,然后想起了多年前在吾爱论坛学到过的东西,最后意外的找到了密码,然后就完美成功卸载了。

布啦啦 7805

【课程设计】SSM校园网上订餐系统 毕业设计-附源码211510

校园网上订餐系统系统主要功能模块包括公告内容(公告栏、轮播图)用户管理(管理员、普通用户)、内容模块(资讯分类、资讯列表)、模块管理(菜品分类、菜单、订单表),采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用SSM框架、Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。

Biye_Design的博客 8112

知识图谱开发实战:搭建上市公司知识图谱(二)

搭建上市公司知识图谱(二)学习目标1. 获取上市公司公开数据1.1 获取上市公司列表与行业信息1.2 代码展示2. 从网站爬取上市公司网页并存储为 HTML文件2.1 准备环境2.2 爬取上市公司公开信息3. 解析HTML文件,获取高管信息并存储为 csv 文件4. 设计知识图谱数据库4.1 实体4.2 关系4.3 属性4.4 特殊4.5 代码5. 知识图谱数据库查询实战5.1 实战:按照neo4j的数据格式,转换CSV文件5.2 实战:使用neo4j-admin 导入数据5.3 实战:使用neo4j-b

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 2094

【AUTOSAR OS】调度表管理模块深度解析

本文深入解析AUTOSAR OS调度表的实现机制。调度表通过预定义到期点序列控制任务激活时序,支持周期性执行、多核协同和容错处理。核心数据结构包括调度表控制块(STCB)、配置结构和到期点动作。关键函数涵盖初始化、启动、到期点处理及链表管理,采用O(n)时间复杂度。以发动机控制为例展示配置与使用方式,并探讨显式同步、时间容错等高级特性。最后提出EP数量控制、链表优化等性能建议,为汽车ECU时间触发系统开发提供参考。

1605

【课程设计】基于SSM的家教系统的设计与实现毕业设计-附源码221752

家教系统服务网主要功能模块包括用户管理、家教信息管理、家长信息管理、订单管理、家教老师管理、公告管理、教育动态管理,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用SSM技术、MyBatis技术进行业务系统的编码及其开发,实现了本系统的全部功能。 关键词:家教系统服务;SSM技术;MySQL数据库...

Biye_Design的博客 2802

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【课程设计】ssm生鲜超市管理系统的设计与实现毕业设计源码261635

用户:注册登录、首页、商品信息、供应商信息、商品销售 管理员:登录、商品销售管理、用户管理、商品信息管理、采购管理、分类信息管理

专业程序开发源的博客 3683

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【课程设计】ssm+微信小程序基于小程序的医院预约挂号系统毕业设计源码260839

游客:登录、注册、信息查询、信息浏览、首页 用户:医院资讯浏览、挂号中心、医院信息、医生查询、科室查询、注册登录 管理员:用户管理、科室管理、医生管理、医生信息管理、挂号中心管理、医院资讯管理、交流中心管理、公告栏 医生:挂号信息、科室信息、医生信息、医院信息...

高级程序源的博客 2940

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

(课程设计)SSM国内热门景点推荐系统的开发-计算机毕设 附源码 83762

前台用户可分为未注册用户需求和以注册用户需求。 未注册用户的功能如下: 注册账号:用户填写个人信息,并验证手机号码。 浏览景点:用户可以根据景点类型浏览景点的信息,并选中某个景点查看详情。 浏览评论信息:选中某个景点可查看其用户的评论。 已注册用户的功能如下: 登录:根据账号密码进行登录操作。 维护个人信息:用户因个人信息的变更可以随时修改自己注册信息。 浏览评论信息:选中某间景点可查看其用户的评论。 景点信息:用户根据自己的需求选中某个景点进行信息浏览操作。 酒店信息:用户可以查看酒店信息。 下单订房:可

ID3461074420的博客 1494

【课程设计】ssm医院挂号系统 毕业设计 250858

前台用户可分为未注册用户需求和已注册用户需求。 未注册用户的功能如下: 注册账号:用户填写个人信息,并验证手机号码。 浏览资讯数据:用户可以浏览主页面的资讯数据来了解系统的最新资讯数据。 浏览科室:用户可以根据科室类型浏览科室的信息,并选中某个科室查看详情,例如:科室名称、科室类别、科室图片等。 浏览医生:用户可以根据医生类型浏览医生的信息,并选中某个医生查看详情,例如:医生姓名、性别、职称、所在科室、主治症状、照片等。 浏览评论信息:选中某个药品可查看其用户的评论。 已注册用户的功能如下: 登录:根据账号

WeiXin_DZbishe的博客 424

struts2 -- interceptor(如何配置Interceptor)

1.interceptor的配置方法1. 普通配置法struts>    package name="struts2" extends="struts-default">        interceptors>            interceptor name="myInterceptor" class="edu.hust.interceptor.MyInter

Forrest He的专栏 1万+

Struts2中ActionContext介紹 && Struts2如何获得request

1. ActionContext在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest),响应(HttpServletResponse)操作. 我们需要在Action中取得request请求参数

Forrest He的专栏 1万+

struts2: Form表单有多个submit的提交问题

【第1步】多个submit的Form表单页面 or 在jsp页面中使用URL进行提交s:form action="UserAction">            s:submit中的method属性和struts.xml中action标签中的method属性一致(method属性指定了要调用的方法)。        在s:submit中可以为一个action设置多个meth

Forrest He的专栏 8743

struts2: include和global-results

先贴两段代码,在慢慢解释(1)struts-user.xmlstruts>    package name="struts-user" extends="struts-default">                global-results>            result type="redirect-action">UserAction_queryAl

Forrest He的专栏 8064

struts2输入验证--验证框架(xml文件验证)

struts2验证框架分为字段(field校验--面向字段、字段优先)校验器和非字段(validator--校验面向validator、validator优先)校验器.通过验证框架验证,只需要删除掉原来validate()方法中的内容(这篇blog是基于"struts2输入验证--validate()验证"的),再增加一个xml文件即可:一个Action对应一个验证xml(RegisterAc

Forrest He的专栏 8009
上一篇: SSH整合(1)-最小整合框架
下一篇: Struts2中ActionContext介紹 && Struts2如何获得request
ForWayfarer
博客等级 码龄20年 60粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值