面对不同种类的处理结果——result type=

2024-05-16 15:18

本文主要是介绍面对不同种类的处理结果——result type=,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Struts2中有很多不同种类的处理结果,有action也有视图文件。比较常见的情景就是我们要一个action链接到另一个action应该怎么做呢?我在这里就做了一个小例子

JSP文件内容



<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><!-- chain链式结果类型,从一个action跳到另一个action --><s:form action="start"><s:submit value="chain链式"/></s:form><!-- 源代码类型 --><s:form action="plainText"><s:submit value="plainText源代码"/></s:form><!-- 请求转发 --><s:form action="dispatcher"><s:submit value="dispatcher转发到JSP视图文件"/></s:form><!-- 请求重定向 --><!-- 注意:重定向和请求转发可是有区别的哦,比较明显的是URL变化 --><s:form action="redirect"><s:submit value="redirect重定向到JSP视图文件"/></s:form><!-- 请求重定向到一个action --><s:form action="redirectAction"><s:submit value="redirectAction重定向到一个Action中"/></s:form><!-- 请求重定向,可以自定义的???这里只能是英文的,我就算在xml中设置的charSet也没有用,有知道的前辈求解一下这个问题,十分感谢--><s:form action="redirect-custom"><s:textfield name="myUrl"/><s:submit/></s:form><!-- 测试全局结果,如果一个action找不到匹配 --><s:form action="login!global"><s:submit value="TestGlobal"/></s:form></body>
</html>

struts.xml文件内容

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constant name="struts.enable.DynamicMethodInvocation" value="true" /><constant name="struts.devMode" value="true" /><constant name="struts.custom.i18n.resources" value="test"/><package name="default" namespace="/" extends="struts-default"><global-results><result name="TestGlobal">/content/TestGlobal.jsp</result></global-results><action name="login" class="action.LoginAction"><result name="success">/content/success.jsp</result></action><action name="start" class="action.ActionOne"><result type="chain">end</result></action><action name="end" class="action.ActionTwo"><result>/content/success.jsp</result></action><action name="plainText"><result type="plainText"><param name="location">/content/success.jsp</param><param name="charSet">UTF-8</param></result></action><action name="dispatcher"><result type="dispatcher">/content/success.jsp</result></action><action name="redirect"><result type="redirect">/content/success.jsp</result></action><action name="redirectAction"><result type="redirectAction"><param name="actionName">TestRedirectAction</param><param name="namespace">/</param></result></action><action name="redirect-custom" class="action.RedirectCustom"><result type="redirect"><param name="location">testRedirect.action?myUrl=${myUrl}</param></result></action><action name="testRedirect" class="action.TestRedirect"><result>/content/success.jsp</result></action><action name="TestRedirectAction"><result>/content/success.jsp</result></action></package></struts>
action中的类的内容

ActionOne.java

package action;import com.opensymphony.xwork2.ActionSupport;public class ActionOne extends ActionSupport {@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("This is ActionOne");return super.execute();}
}



ActionTwo.java

package action;import com.opensymphony.xwork2.ActionSupport;public class ActionTwo extends ActionSupport {@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("This is ActionTwo");return super.execute();}
}



LoginAction.java

package action;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("This is execute");return super.execute();}public String method1() throws Exception {System.out.println("This is one");return SUCCESS;}public String method2() throws Exception {System.out.println("This is two");return SUCCESS;}public String global() throws Exception {System.out.println("This is glboal()");return "TestGlobal";}
}



RedirectCustom.java

package action;import com.opensymphony.xwork2.ActionSupport;public class RedirectCustom extends ActionSupport {private String myUrl;public String getMyUrl() {return myUrl;}public void setMyUrl(String myUrl) {this.myUrl = myUrl;}@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("这里是RedirectCustom的execute(),接收到的myUrl为" + getMyUrl());return super.execute();}
}



TestRedirect.java

package action;import com.opensymphony.xwork2.ActionSupport;public class TestRedirect extends ActionSupport {private String myUrl;public String getMyUrl() {return myUrl;}public void setMyUrl(String myUrl) {this.myUrl = myUrl;}@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubSystem.out.println("这里是TestRedirect的execute(),接收到的myUrl值为:" + getMyUrl());return super.execute();}
}
呼呼~总之你做好这几个文件就好了,之后慢慢看action是如何跳转的。我先撤了

这篇关于面对不同种类的处理结果——result type=的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995276

相关文章

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

MyBatis 切换不同的类型数据库方案

下属案例例当前结合SpringBoot 配置进行讲解。 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持。 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:datasource:name: test# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 数据库连接及驱动u

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

Caused by: org.hibernate.MappingException: Could not determine type for: org.cgh.ssh.pojo.GoodsType,

MappingException:这个主要是类映射上的异常,Could not determine type for: org.cgh.ssh.pojo.GoodsType,这句话表示GoodsType这个类没有被映射到

ORACLE语法-包(package)、存储过程(procedure)、游标(cursor)以及java对Result结果集的处理

陈科肇 示例: 包规范 CREATE OR REPLACE PACKAGE PACK_WMS_YX IS-- Author : CKZ-- Created : 2015/8/28 9:52:29-- Purpose : 同步数据-- Public type declarations,游标 退休订单TYPE retCursor IS REF CURSOR;-- RETURN vi_co_co