结果类型(result_type)

本文详细介绍了Struts2框架中的各种结果类型,包括dispatcher、redirect、chain、redirectAction等,并解释了它们的工作原理及使用场景。通过具体的配置示例帮助开发者更好地理解和应用这些结果类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结果类型(result_type):默认为dispatcher,运用服务器跳转,跳转到结果页面, redirect 跳转到视图(JSP) 、chain forward 到action 、redirctAction 客户端跳转,跳转到Action
//index.jsp
result 类型:
<br />
<ol>
<li> <!-- 地址框显示action -->
<a href="r/r1">dispatcher</a> 运用服务器跳转,跳转到结果页面(体现在struts.xml配置中)
</li>
<li> <!-- 地址框显示JSP -->
<a href="r/r2">redirect</a> 跳转到视图(JSP)
</li>
<li> <!-- 地址框显示action -->
<a href="r/r3">chain</a> forward 到action
</li>
<li> <!-- 地址框显示JSP -->
<a href="r/r4">redirctAction</a> 客户端跳转,跳转到Action
</li>
<li>
freemarker
</li>
<li>
httpheader 发http头信息
</li>
<li>
stream 下载
</li>
<li>
velocity
</li>
<li>
xslt 与xml相关的语言
</li>
<li>
plaintext 显示页面源码,用于教学网站
</li>
<li>
tiles 将页面分块
</li>
</ol>
<br>
//struts.xml
<constant name="struts.devMode" value="true" />
<package name="resultTypes" namespace="/r" extends="struts-default">
<action name="r1"><!-- 地址框显示action -->
<result type="dispatcher">/r1.jsp</result> <!-- dispatcher只能跳转到页面,不能是action -->
</action>

<action name="r2"> <!-- 地址框显示JSP -->
<result type="redirect">/r2.jsp</result> <!-- 表示跳转到r2.jsp -->
</action>

<action name="r3"><!-- 地址框显示本action -->
<result type="chain">r1</result> <!-- 跳转到r1 action -->
</action>

<action name="r4">
<result type="redirectAction">r2</result> <!-- 地址框显示目的JSP -->
</action>
</package>
这个代码块看起来是Python的一部分,它定义了一个变量`ale_guarantor`,该变量的值根据`result_type`来计算,并且使用了函数`alert_count()`。由于没有给出`alert_count()`的具体实现和`result_type`可能的输入类型,这里假设`alert_count()`是一个统计异常或警告数量的函数。 **测试用例代码与说明:** ```markdown ```python # 首先,我们需要一个假设的`result_type`和`alert_count()`函数示例 def alert_count(result_type): # 假设这个函数根据不同类型result_type返回不同的计数值 if result_type == "error": return 5 elif result_type == "warning": return 3 else: raise ValueError("Invalid result type") # 测试1: 如果result_type是"error" ale_guarantor_test_case_1 = alert_count("error") assert ale_guarantor_test_case_1 == 5, "当result_type为'error'时,预期应返回5" # 测试2: 如果result_type是"warning" ale_guarantor_test_case_2 = alert_count("warning") assert ale_guarantor_test_case_2 == 3, "当result_type为'warning'时,预期应返回3" # 测试3: 如果result_type是无效类型(比如"invalid") try: ale_guarantor_test_case_3 = alert_count("invalid") except ValueError as e: assert str(e) == "Invalid result type", "当result_type不合法时,预期抛出ValueError并包含提示信息" # 测试4: 如果result_type不是字符串 ale_guarantor_test_case_4 = alert_count(123) if isinstance(ale_guarantor_test_case_4, Exception): # 假设函数处理非字符串会引发错误 assert isinstance(ale_guarantor_test_case_4, ValueError), "当result_type为非字符串时,预期应返回一个异常" ``` 这些测试涵盖了不同`result_type`的有效和无效情况,以确保`ale_guarantor`的计算正确无误。请注意,在实际项目中,你需要根据`alert_count()`的实际行为调整这些测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值