Struts2.0的result
Action处理请求后,会返回一个字符串,这整个字符串就是一个逻辑视图。Strtus2.0会根据逻辑视图和物理视图的映射关系,找到物理视图。
<result name="xxx" type="xxxx"></result>
1. dispatcher
<result name="xxx" type="dispatcher">
<!--location表示实际视图资源-->
<param name="location">/ok.jsp</param>
<!--parse:在视图页面中是否可以使用ognl表达式,默认为true-->
<param name="parse"></param>
</result>
2.stream Action给客户端的是一个输入流
<result name="xxx" type="stream">
<param name="inputName">action中流的属性名</param>
<param name="buffSize">缓冲【默认值为1024】</param>
</result>
3.chain 一个Action转发到另一个Action
4. redirect 页面的重定向
5. redirectAction 一个Action重定向到另一个Action
6. freemarker:使用指定的FreeMarker模板作为视图的类型
模板:一份已经写好了基本内容,固定格式的文档,会空出或者使用占位符的内容。
用户使用时只要填充空出的位置即可。
7. plainText:显示页面源代码
FreeMaker例子:
1.写一个Action extends ActionSupport
package com.jsu.struts2.action; import com.opensymphony.xwork2.ActionSupport; public class FreeAction extends ActionSupport { private String title; private String body; public String execute() throws Exception { title="FreeMaker Test"; body="Hello FreeMarker"; return SUCCESS; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } }
2.在webroot下面创建freeTest.ftl文件
<html> <head> <title>${title}</title> </head> <body> <h1>${body}</h1> </body> </html>
3.在struts.xml文件中配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <package name="resultDemo" namespace="/" extends="struts-default"> <action name="free" class="com.jsu.struts2.action.FreeAction"> <result type="freemarker">/freeTest.ftl</result> </action> </package> </struts>
4.在浏览器地址栏访问http://localhost:8080/Struts2_06/free.action
PlainText例子
1.写一个Action PlaintTextAction
package com.jsu.struts2.action; import com.opensymphony.xwork2.ActionSupport; public class PlainTextAction extends ActionSupport{ private String hello; public String execute() throws Exception { hello="你好 Plain Text"; return SUCCESS; } public String getHello() { return hello; } public void setHello(String hello) { this.hello = hello; } }
2.在ok.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Plint Text</title> </head> <body> <h1>${hello} </h1> </body> </html>
3.在struts.xml文件中配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <package name="resultDemo" namespace="/" extends="struts-default"> <action name="plain" class="com.jsu.struts2.action.PlainTextAction"> <result type="plainText"> <param name="location">/ok.jsp</param> <param name="charSet">UTF-8</param> </result> </action> </package> </struts>
4.在地址栏访问http://localhost:8080/Struts2_06/plain.action