Struts2中结果集转发

一、结果集介绍

        Struts2的Action处理用户请求结束后,返回一个普通字符串——逻辑视图名,必须在struts.xml文件中完成逻辑视图和物理视图资源的映射,才可以让系统转到实际的视图资源。

        简单的说,结果是告诉struts2框架,当Action处理结果时,系统下一步做什么。当Action返回一个普通字符串时,系统下一步将做什么。

        Struts2中支持局部结果和全局结果。

        这些由局部结果和全局结果构成的结果,我们称为结果集

(1)局部结果

        将<result…/>作为<action…/>元素的子元素配置。一个<action…/>元素可以有多个<result…/>元素,这表示一个Action可以对应多个结果。例如:

<action name="*">
            <result name="success" type="dispatcher">
               <param name="location">/login.jsp</param>
            </result>
</action>

        其中,type属性指定结果类型为dispatcher。

        <param name="location">/login.jsp</param>为该逻辑视图指定实际的视图资源。

(2)全局结果

        将<result…/>作为<global-result…/>元素的子元素配置。例如:

<global-results>
            <result name="error">/error.jsp</result>
        </global-results>

二、Struts2支持的结果类型

(1)struts2支持的结果类型

        Struts2内建支持的结果类型有:

        (1)chain

        用来处理Action链,Action链式处理的结果类型。

        将action的带着原来的状态请求转发到新的action,两个action共享一个ActionContext,actionName指定转向的新的Action的名字,method指定转向哪个方法,namespace指定新的Action的名称空间,不写表示与原Action在相同的名称空间。

        (2)dispatcher

        请求转发,底层调用RequestDispatcher的forward() 方法,dispatcher是result的type属性默认值,通常用于转向一个JSP。

        Dispatcher类型是最常用的结果类型,也是struts框架默认的结果类型。

        (3)freemarker

        处理FreeMarker模板。

        用freemaker模板引擎呈现视图,location指定模板(*.ftl)的位置,parse如果为false,location的值不会被OGNL解析,contentType指定以何中类型解析,默认为text/html。

        (4)httpheader

        控制特殊HTTP行为的结果类型。

        (5)redirect

        重定向到一个URL。

        新页面无法显示Action中的数据,因为底层调用response.sendRedirect(“”)方法,无法共享请求范围内的数据。

        (6)redirectAction

        重定向到一个Action。

        参数与chain用法相同,允许将原Action中的属性指定新名称带入新Action中,可以在Result标签中添加 <param name=”b”>${a} </param>,这表示原Action中的变量a的值被转给b,下一个Action可以在值栈中使用b来操作。

        (7)stream

        向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据。

        (8)velocity

        处理Velocity模板。

        (9)xslt

        处理XML/XLST模板。

        (10)plainText

        显示原始文件内容,例如文件源代码。

(2)struts2常用的结果类型

        struts2常用的结果类型有:chain、dispatcher、redirectAction、freemarker。

三、知识扩展

(1)如何查看Struts2支持哪些结果类型?

        在\Web App Libraries\struts2-core-2.3..8.jar\struts-default.xml中可以找到定义,如下所示:

<result-types>
            <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
            <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
            <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
            <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
            <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
            <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
            <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
            <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
            <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
            <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
        </result-types>


转载于:https://my.oschina.net/wlb/blog/278529

一、数据层:多源人脸数据获取 该层负责从不同设备 / 渠道采人脸原始数据,为后续模型训练与识别提供基础样本,核心功能包括: 1. 多设备适配采 实时摄像头采: 调用计算机内置摄像头(或外接 USB 摄像头),通过OpenCV的VideoCapture接口实时捕获视频流,支持手动触发 “拍照”(按指定快捷键如Space)或自动定时采(如每 2 秒采 1 张),采时自动框选人脸区域(通过Haar级联分类器初步定位),确保样本聚焦人脸。 支持采参数配置:可设置采分辨率(如 640×480、1280×720)、图像格式(JPG/PNG)、单用户采数量(如默认采 20 张,确保样本多样性),采过程中实时显示 “已采数量 / 目标数量”,避免样本不足。 本地图像 / 视频导入: 支持批量导入本地人脸图像文件(支持 JPG、PNG、BMP 格式),自动过滤非图像文件;导入视频文件(MP4、AVI 格式)时,可按 “固定帧间隔”(如每 10 帧提取 1 张图像)或 “手动选择帧” 提取人脸样本,适用于无实时摄像头场景。 数据对接: 支持接入公开人脸数据(如 LFW、ORL),通过预设脚本自动读取数据目录结构(按 “用户 ID - 样本图像” 分类),快速构建训练样本库,无需手动采,降低系统开发与测试成本。 2. 采过程辅助功能 人脸有效性校验:采时通过OpenCV的Haar级联分类器(或MTCNN轻量级模型)实时检测图像中是否包含人脸,若未检测到人脸(如遮挡、侧脸角度过大),则弹窗提示 “未识别到人脸,请调整姿态”,避免无效样本存入。 样本标签管理:采时需为每个样本绑定 “用户标签”(如姓名、ID 号),支持手动输入标签或从 Excel 名单批量导入标签(按 “标签 - 采数量” 对应),采完成后自动按 “标签 - 序号” 命名文件(如 “张三
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值