说明:本文翻译自struts自带的doc,路经为:struts-2.0.8-all\struts-2.0.8\docs\docs\selecting-results.html
在编写Action这一章节中,我们创建了一个Logon类来测试输入。在本章中,我们将使这个测试的结果起作用。
一. 选择一个“Input”结果
在一个Action执行一个请求后,一个提供用来作为这个请求回应的结果被选择。这个结果可以简单的定向到一个HTML页面、一个JSP页面、一个FreeMaker或一个Velocity模板、或者这个结果可能构造一个PDF或某些更加复杂的输出(例如JasperReports)。在一个action映射中可能有多个可选的结果。为了指明那一个被选择,Action类返回一个与正确结果相对应的名字。
二. 代码
struts.xml的代码如下所示:
<action name="Logon" class="tutorial.Logon">
<result type="redirect-action">Menu</result>
<result name="input">/tutorial/Logon.jsp</result>
</action>
三. 代码是如何工作的?
1. 如果你在表单中输入username和password属性,Logon Action将会返回“success”;
2. 如果你其中一者或两者都没有输入值,Logon Action将返回“input”,框架将会使用Logon.jsp作为回应。
在Hello World章节中,我们的结果使用了默认的类型:Dispatcher。Dispatcher定向到另外的web资源。其它种类的视图能够被用来指明不同的结果类型。
Logon映射为success(默认的返回值)使用了一种不同的返回类型。“redirect-action”使用Action的名字作为参数,接着使客户端定向到一个新的action。
四. 使用一个Stub页
当我们开发web应用程序的时候,我们常常需要进行forward引用——我们需要引用到一个我们还没有开始写的action。例如,在文章的第一部分中,下一步是跳转到“Menu”页面。如果我们成功登录,我们就没有地方去了,因为“Menu”尚不存在。
解决这种问题的方法是创建一个Stub“Menu”页。
Menu.jsp的代码如下:
<html>
<head><title>Missing Feature</title></head>
<body>
<p>
This feature is under construction.
Please try again in the next interation.
</p>
</body>
</html>
这段代码是如何工作的呢?
1. 当登录class返回“Menu”时,框架将会将其与通配符映射对应起来;
2. 框架现在将会返回一个stub的“Menu.jsp”。
说明:如果你没有使用通配符,另一种注入一个丢失页面的方法就是指定一个<action-default-ref>元素。
五. 包括一个缺失页面
如果你页到页的建造一个应用程序,建立一个标准的缺失页面时对应的标准页面是非常必要的。Menu.jsp的代码如下:
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:include value="Missing.jsp" />
这段代码是如何工作的呢?
当需要展现Menu.jsp的时候,它将会包括标准的Missing.jsp的内容。
六. 需要记住的东西
本框架提供多种返回类型。一个Action能够通过名字选择正确的返回结果,而不用知道到底是哪一种返回类型。
下一章:验证输入值
上一章:编写Action
posted on 2007-07-31 12:36
阿蜜果 阅读(2248)
评论(3) 编辑 收藏 所属分类:
Struts2