16struts2result类型
概念:服务器端跳转(forword): 跳转时,地址栏不发生改变。客户端跳转(redirect),在跳转时,地址栏会发生改变。

 Action 中表示跳转的目的地使用了在 l 配置的字符串, 格式为: <result name=”” type=””></result>,type 可以有多种选择,Struts2 支持各种视图技术,例如 JSP、JSF、XML 等,默认的是 JSP。
常见的 type 类型配置如下:
dispatcher(访问jsp,服务器端跳转)
转发到 JSP 页面,和<jsp:forward page=””/>的效果一样,是默认类型。
<result>/Success.jsp</result> --默认name=“success”
<result name=”a”>/Success.jsp</result>
<result name=”b” type=”dispatcher”>/Success.jsp</result> 
redirect(访问jsp,客户端跳转)
重定向到 JSP 页面,和 response.sendRedirect(“”)的效果一样。
<result name=”a” type=”redirect”>/Success.jsp</result>
 redirectAction(action的客户端跳转)
  重定向到 action,目的地为 Action,配置时可以指定如下两个参数:actionName-重定向 的
Action 名;namespace-重定向的 Action 所在的命名空间。
  <result name=”a” type=”redirectAction”>
  <param name=”actionName”>myaction</param>
  <param name=”namespace”>/test</param>
  </result> 
 chain(action的服务器端跳转)
转发到 action,形成 action-chain,可以指定两个参数:actionName-重定向的 Action 名; namespace-重定向的 Action 所在的命名空间。
  <result type=”chain”>
  <param name=”actionName”>myaction</param>
  <param name=”namespace”>/test</param>
</result>
stream
用于向页面返回一个 InputStream,原始数据直接传递给 HttpServletResponse,这种结果 类型在用户下载文件(例如 PDF 文件等)等情况下非常有意义。
<result name=”success” type=”stream”>
  <param name=”contentType”>image/jpg</param>
  <param name=”inputName”>imageStream</param>
  <param name=”contentDisposition”>filename=”document.pdf”</param>
  <param name=”buffersize”>1024</param>
  </result> 
plaintext
用于输出目的地 JSP/HTML 的源代码内容,可以指定两个参数:location-目的地 JSP/HTML,charSet-输出内容时使用的字符集。
<result name="success" type="plaintext">
  <param name="location">/Success.jsp</param>
   <param name="charset">utf-8</param>
</result>
除了上述类型以外,还支持如下的类型:
chart:用于整合 JFreeChart 的 result 类型;
freemarker:用于整合 FreeMarker 的 result 类型;
httpheader:用于处理特殊 http 行为的 result 类型;
jasper:用于整合 JasperReport 的 result 类型; jsf:用于整合 JSF 的 result 类型;
tiles:用于整合 Tiles 的 result 类型;
velocity:用于整合 Velocity 的 result 类型;
xslt:用于整合 XML/XSLT 的 result 类型。
 这些视图技术的支持,有些还需要导入相应的插件包,即 Struts2 提供的含有 plugin 字 样的 jar 包。
1、 复制上一个项目,命名为Struts15_ResultType,修改l
<package name="struts15" namespace="/" extends="struts-default">
    <default-action-ref name="index"></default-action-ref>
    <action name="index">
            <result name="success">
                /index.jsp 
            </result>
    </action>
    <action name=jsp创建"action">
            <result name="success" type="dispatcher">
                /action.jsp 
            </result>
    </action>
    <action name="disp">
            <result name="success" type="dispatcher">
                /dispatcher.jsp
            </result>
    </action>
    <action name="redi">
            <result name="success" type="redirect">
                /redirect.jsp 
            </result>
    </action>
    <action name="chn">
            <result name="success" type="chain">action</result>
    </action>
    <action name="redi_a">
        <result name="success" type="redirectAction">
            <param name="actionName">action</param>
            <param name="namespace">/</param>
        </result>      </action>
  </package>
2、 创建几个jsp视图文件。
index.jsp
<body>
      <h2>ResultType</h2><br>
      <a href="disp" target="_blank">dispatcher</a><br>
      <a href="redi" target="_blank">redirect</a><br>
      <a href="chn" target="_blank">chain</a><br>
      <a href="redi_a" target="_blank">redirectAction</a><br>
  </body>
action.jsp
<body>
      <h2>this is action.jsp</h2><br>     
</body>
redirect.jsp
<body>
      <h2>this is redirect.jsp</h2><br>     
</body>
dispatcher.jsp
<body>
      <h2>this is   dispatcher .jsp</h2><br>     
</body>
3、 输入网址测试:localhost:8080/Struts15_ResultType/
4、相关参考资料:F:\开发工具\struts-2.1.6\docs\docs\result-types.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。