`
condeywadl
  • 浏览: 78245 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

MyLibrary问题分析(三)-struts2控制器(action)返回字符串

阅读更多

   今天难道的早起(因为早上要开会),或许很久没有那么早起床了,今天起床之后一点都不困,显得特兴奋,昨天自然心情很好,比赛忙完了,项目又接近尾声,似乎我一下子又空了起来,终于又可以继续写我的MyLibrary了,但是马上要考可恶的六级了,似乎今年没有完成的希望了。

   今天下午小小的玩了下,继续我的java之旅,这次遇到了一个问题,需要Action返回一个字符串放到前台解析,网上一搜一大堆,我也不另外写个文章来说明怎么做,以前也遇到过这样的情况,但是似乎以前用的方法比较烂,这次想选一个一劳永逸的办法去解决,所以我采用了如下方法

   首先自己定义了一返回类型(字符串), 这个类代码如下:

public class StringResult extends ServletRedirectResult {

	private static final long serialVersionUID = 1L;
	private String contentTypeName;
	private String stringName = "";

	public StringResult() {
		super();
	}

	public String getContentTypeName() {
		return contentTypeName;
	}

	public void setContentTypeName(String contentTypeName) {
		this.contentTypeName = contentTypeName;
	}

	public String getStringName() {
		return stringName;
	}

	public void setStringName(String stringName) {
		this.stringName = stringName;
	}

	public StringResult(String location) {
		super(location);
	}

	protected void doExecute(String finalLocation, ActionInvocation invocation)
			throws Exception {
		HttpServletResponse response = (HttpServletResponse) invocation
				.getInvocationContext().get(HTTP_RESPONSE);
		
		String contentType = conditionalParse(contentTypeName, invocation);
		if (contentType == null) {
			contentType = "text/plain; charset=UTF-8";
		}
		response.setContentType(contentType);
		PrintWriter out = response.getWriter();
		
		String result = (String) invocation.getStack().findValue(stringName);
		out.println(result);
		out.flush();
		out.close();
	}

}

   新建完这个类后,我们就可以在struts2配置文件中使用这个返回类型:

  

<package name="default" namespace="" extends="struts-default"> 
     <result-types>
            <result-type name="string" class="com.condey.system.StringResult"></result-type>
     </result-types>
 </package>   

 

    如果某个action需要使用这个返回类型,就可以这么写:

   

  <action name="deleteSort" class="manageSortAction" method="deleteSortAction">
          <result name="deResult" type="string">
             <param name="stringName">deResult</param>
          </result>
</action>

    这里简单说一下 name="deResult"这个result  就是在 deleteSortAction这个方法中  return "deResult"的这个result,然后 <param name="stringName"> 就是StringResult的字段, 接下去的deResult就是当返回这个result的时候,action中deResult值给予StringResult的stringName这个字段

    下面是deleteSortAction这个method:

    

public String deleteSortAction() {
		if (sortId < 0)
			deResult = "false";

		try {
			Boolean result = manageSort.deleteSort(sortId);

			if (result == true) {
				deResult = "success";
				
			} else
				deResult = "false";
		} catch (Exception e) {
			deResult = "false";
			return "deResult";
		}
		return "deResult";
	}

    忽然我又出现了一个疑问为什么SUCCESS这些就可以直接使用呢? 我粗略的查了查,看了struts-default.xml之后,发现result的默认类型为:

   

<result-types>  
    <result-type name="dispatcher" default="true"   
    class="org.apache.struts2.dispatcher.Servlet  
    DispatcherResult"/>  
</result-types> 

    知道了DispatcherResult 去查了下源代码, 然后就一目了然了,他使用的直接String finalLocation传值方式,嘿嘿~深入研究框架的源代码还是挺重要的,继续研究中ing ......

3
0
分享到:
评论
1 楼 johnfanyong 2011-03-02  
赞一个。     

相关推荐

    MyLibrary-master.zip

    《MyLibrary-master.zip》是一个专为初学者设计的图书馆管理系统,它涵盖了登录、注册、图书借阅与归还以及常见的数据操作等基本功能。这个项目使用了SSM(Spring、SpringMVC、MyBatis)框架,这是一个在Java开发中...

    图书综合管理系统-mylibrary

    《图书综合管理系统-mylibrary》是一个专门针对图书馆管理而设计的信息系统。这个系统旨在提供全面、高效、便捷的图书管理服务,以满足图书馆日常运营的各种需求。以下是对该系统的详细解析: 一、系统概述 图书...

    MyLibrary工具类库

    MyLibrary通过自定义注解和反射机制,可以自动将JSON字符串映射到Java对象中,大大减少了手动创建Gson或Jackson模型类的工作。例如,只需要定义一个包含对应字段的Java类,并在类上添加`@JsonModel`注解,然后调用`...

    MyLibrary 我的图书馆

    《我的图书馆(MyLibrary)——基于Android的XML图书管理应用详解》 在当今信息化时代,图书管理软件已经成为我们日常生活和工作中不可或缺的一部分。而“我的图书馆(MyLibrary)”是一款专为Android平台设计的应用,...

    MyLibrary20201003-21:47_stm32f103c8t6_源码

    STM32F103C8T6是意法半导体(STMicroelectronics)生产的一款基于ARM Cortex-M3内核的微控制器,广泛应用于各种...开发者可以通过阅读和分析代码,掌握如何进行微控制器的初始化工作,进一步提升嵌入式系统的开发能力。

    XBMC.MyLibrary-1.3.1.zip_it

    XBMC.MyLibrary-1.3.1.zip 是一个专为XBMC(Xbox Media Center,后更名为Kodi)设计的扩展工具,版本号为1.3.1。这个工具的主要功能是增强用户的媒体库体验,使得用户能够在XBMC平台上浏览和访问更多的电影资源。它...

    mylibrary-debug.aar

    文件下载,多线程下载。断点下载等简单封装的aar包

    mylibrary_tushuguanlixitong_

    管理员登录图书管理软件系统可以进行读者管理、书籍管理、借阅情况查询分析。读者管理包括读者基本信息的添加、删除、修改以及根据读者编号和姓名查询读者信息,书籍管理包括书籍基本信息的添加、删除、修改以及根据...

    ASP.NET Core 引用其他程序集项目里面的 Controller 控制器.rar

    在这个特定的案例中,我们关注的是如何在ASP.NET Core项目中引用并使用来自其他程序集的Controller控制器。这通常涉及到项目的模块化设计,使得代码组织更加清晰,可重用性更强。 在ASP.NET Core中,Controller是...

    MyLibrary

    在MyLibrary的压缩包文件"**MyLibrary-main**"中,我们可以预期找到以下内容: 1. HTML文件:包含图书馆的主要页面结构和内容。 2. CSS文件:定义了页面的样式和布局。 3. JavaScript文件:提供了用户交互和动态...

    WPF封装成DLL方法

    #### 三、解决WPF DLL应用中Main方法的问题 在将WPF项目封装成DLL后,可能会遇到以下错误: &gt; Program'SQLiteManager.exe'doesnotcontainastatic'Main'methodsuitableforanentrypoint 该错误提示表明在SQLite...

    管理系统系列--MYLIBRARY图书管理系统 是基于Spring Boot + Mybatis 开发的图书管理系统.zip

    综上所述,MYLIBRARY图书管理系统通过Spring Boot和Mybatis的结合,构建了一个强大且易用的图书管理平台,涵盖了用户管理、图书管理、借阅操作、查询功能以及安全控制等多个方面。此外,其设计考虑到了系统的可扩展...

    MyLibrary:我的图书馆

    2. **src/main/resources**:存储非编译代码的资源文件,如配置文件、图片或数据库连接字符串。 3. **build.gradle**:项目构建文件,定义了项目依赖、编译设置和插件配置。 4. **settings.gradle**:配置项目结构和...

    mylibrary_master.zip

    "mylibrary_master.zip" 是一个包含Qt图书管理系统的源代码压缩包,主要使用C++语言编写,适合初学者学习Qt GUI(图形用户界面)和线程系统的基础应用。这个项目可能是一个简易的个人图书馆管理系统,用于管理和跟踪...

    人工智能-项目实践-检索系统-MYLIBRARY图书管理系统 是基于Spring Boot + Mybatis 开发的图书管理系

    MYLIBRARY图书管理系统 是基于Spring Boot + Mybatis 开发的图书管理系统, 系统具有用户管理、角色管理、应用管理、图书分类管理、图书信息管理、借书管理、还书管理、图书检索、借还记录等功能。 后端 基础框架:...

    图书管理系统

    【图书管理系统】是一个基于SSH(Struts2、Hibernate和Spring)框架开发的应用示例,它展示了如何在实际项目中整合这三个技术。SSH是Java Web开发中的一个流行组合,提供了模型-视图-控制器(MVC)的设计模式,帮助...

    图书管理系统-C#

    6. Web.config:配置文件,包含应用程序的配置信息,如数据库连接字符串。 通过分析和实践这个“图书管理系统-C#”项目,初学者可以深入理解ASP.NET MVC的工作原理,学习如何使用C#进行Web开发,以及如何利用ORM如...

    java6string源码-Mylibrary:只提供我自己

    java6 string源码 一、ListView android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新,ListView、ViewPager、WebView、ExpandableListView、GridView、ScrollView、Horizontal ...

Global site tag (gtag.js) - Google Analytics