首页 技术 正文
技术 2022年11月8日
0 收藏 851 点赞 1,960 浏览 3345 个字

27 结果类型

主要就四种种 dispatch和rediret chain和drdirectaction

<package name="resultTypes" namespace="/r" extends="struts-default">    <action name="r1">    <result type="dispatcher">/r1.jsp</result>    </action>    <action name="r2">    <result type="redirect">/r2.jsp</result>    </action>    <action name="r3">    <result type="chain">r1</result>    </action>    <action name="r4">    <result type="redirectAction">r2</result>    </action>    </package>

第一个只能跳转到视图jsp/html 不能跳转到action

后三个可以跳转到action

redirect也可以跳转到action

不过redirect与redirectaction底层都是重定向,换句话说,之前的参数都丢失了

r1.jsp里面就是写了个”r1″字符串

r2.jsp类似

当用dispatch时 浏览器地址栏上是localhost:8900/webname/r/r1

当用redirect时  浏览器地址栏上是localhost:8900/webname/r2.jsp

当用chain时     浏览器地址栏上是localhost:8900/webname/r/r3

当用redirectAction  浏览器地址栏上是localhost:8900/webname/r2.jsp

//////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////

2015年11月14日 修改

关于后两种的差异,请大家移步

拙作 Struts Chain ClassCastException Aop

2015年11月14日 修改

//////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////

30 全局结果集

struts如下

 <package name="user" namespace="/user" extends="struts-default">    <global-results>    <result name="mainpage">/main.jsp</result>    </global-results>    <action name="index">    <result>/index.jsp</result>    </action>    <action name="user" class="com.bjsxt.struts2.user.action.UserAction">    <result>/user_success.jsp</result>    <result name="error">/user_error.jsp</result>    </action>    </package>    <package name="admin" namespace="/admin" extends="user">    <action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">    <result>/admin.jsp</result>    </action>    </package>

注意 admin这个package里面的action想要用定义在user里面的全局结果集就得让它继承user

响应的类如下

package com.bjsxt.struts2.user.action;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {private int type;//省略get/set方法@Overridepublic String execute() throws Exception {if(type == 1)                     return "success";else if (type == 2)                     return "error";else                    return "mainpage";}}

index.jsp如下

<?xml version="1.0" encoding="GB18030" ?><%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%><% String context = request.getContextPath(); %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030" /><title>Insert title here</title></head><body>Result类型<ol><li><a href="user/user?type=1" rel="external nofollow" >返回success</a></li><li><a href="user/user?type=2" rel="external nofollow" >返回error</a></li><li><a href="user/user?type=3" rel="external nofollow" >返回global result</a></li><li><a href="admin/admin" rel="external nofollow" >admin,继承user包</a></li></ol></body></html>

31 动态结果集

 <package name="user" namespace="/user" extends="struts-default">    <action name="user" class="com.bjsxt.struts2.user.action.UserAction">    <result>${r}</result>    </action>  </package>

这里面的${}是什么? 别急 往下看

package com.bjsxt.struts2.user.action;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {private int type;private String r;//省略get/set方法@Overridepublic String execute() throws Exception {if(type == 1) r="/user_success.jsp";else if (type == 2) r="/user_error.jsp";return "success";}}

大家看到了 struts.xm里面的r是useraction里面的一个属性 而在值栈里面 会把action里面的属性都保存下来

通过$就可以访问值栈里面的内容了

不过 这个动态结果 似乎不常用

另外 刚才写博客的时候脑子忽然抽了一下

返回值后 result就是下面这个呀 没有success呀

<result>/user_success.jsp</result>

如果你也忽然脑子抽了 没想明白这个问题 就自己去查资料!!!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,412
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,185
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905