`

Struts2使用Annotation返回Json

阅读更多

      最近使用ssh構建服務器,用於與android客戶端的通訊。期間每每添加action或者new method都必須改配置文件,久而久之很煩,於是於昨夜決定,今日起身后嘗試用annotation返回json(過往不曾嘗試...).

      由於之前嘗試使用annotation跳轉到頁面,因此覺得返回json應該是差不多的。不過真的誰試誰知道...哎...

      最後通過木有大腿的毅力,終於成果了。遂記,或拯救他人於水深火熱之中。


      先說說需要的jars,如下圖:

      


     然後,看一下目錄結構:


     


    對於model 的話,像平常一樣使用json annotation就可以,在此就不截圖了。

    現在來看一下action.



import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;

import com.vincent.model.User;

@ParentPackage("json-default")
@Namespace("/testjson")
public class TestAction {

	private User user;

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	@Action(value = "user", results = { @Result(name = "success", type = "json") })
	public String getJson() {

		user = new User("vincent");

		return "success";
	}
}


      需要注意的是,ParentPackage一般是struts-default, 但由於我需要返回json,就改成json-default。如果有經驗的朋友應該可以理解到,這個就是相當於struts.xml中<package/>的extend.

      另外需要注意的是,像使用配置文件配置返回Json一樣,返回的對象都要有對應的getter/setter,否則只返回{"json":"success"}; 再者,如果是使用頁面進行跳轉的話,@Action 中value的值格式是"/*",*是對應的name.


      最後,來看看web.xml的配置:



<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>Struts2Example1</display-name>
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	
	<filter>
		<!-- Struts2 annotation -->
		<filter-name>struts</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
		<!-- //固定格式 -->
		<init-param>
			<param-name>actionPackages</param-name>
			<!-- com.struts2.action1,com.struts.action2 -->
			<param-value>com.vincent.action.TestAction</param-value>
		</init-param>
	</filter>
	
	
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

</web-app> 

   

   注意:如果是有多個action的話,action之間是使用","隔開。



    最後,在瀏覽器上敲入:

     http://localhost:8080/StrutsAnnotationReturnJson/testjson/user

    就可以看到如下結果:

    


    最最最后,各位不嫌棄的話,小弟附上源碼。謝謝。

    這次就到這裡吧,看定影去.

 


 

分享到:
评论

相关推荐

    struts2annotation json

    标题“struts2annotation json”暗示我们将探讨如何在Struts2中使用注解来处理JSON相关的功能。首先,让我们深入理解Struts2的注解系统。 1. **Struts2注解**: - `@Action`: 这个注解用于标记一个方法为处理HTTP...

    Struts2 ajax json使用介绍

    `@Action`注解定义了Action的URL,`@Result`注解设置了结果类型为`json`,这使得Struts2会自动将Action的属性转换为JSON格式并返回。 **四、Struts配置** 最后,我们需要在`struts.xml`配置文件中声明我们的Action...

    Struts2 json插件入门指南.pdf

    本文介绍了如何使用Struts2的JSON插件处理JSON数据。通过不同的配置选项和示例,读者可以了解到如何灵活地控制返回的JSON数据格式。无论是使用XML配置还是注解方式,Struts2都提供了丰富的选项来满足不同的需求。...

    Struts2 Spring2.5 Hiberante3.3.2 +ExtJS(Struts2-json)做的CRUD

    在与Struts2结合时,Struts2的JSON插件可以将服务器端的数据转换成JSON格式,方便ExtJS的组件直接使用,实现异步数据加载和页面动态更新。 总的来说,这个DEMO展示了如何将这些技术有效地整合,构建一个完整的Java ...

    struts2与extjs tree的完美结合

    在这个“struts2与extjs tree的完美结合”的示例中,开发者利用了Struts2的Annotation特性来简化配置,以及Struts2JSON插件来处理JSON数据,从而实现在服务器端动态生成和返回Tree节点。Annotation使得开发者能够在...

    csh框架+cxf+spring+hibernate+mysql 注解 annotation xml json

    【标题】"csh框架+cxf+spring+hibernate+mysql 注解 annotation xml json" 提到的是一个基于Java技术栈的Web服务开发架构,涵盖了多个关键组件和技术,这些技术在现代企业级应用中广泛应用。以下是这些知识点的详细...

    ssh json使用jar全

    在`struts2-json-plugin-2.2.1.jar`中,包含了Struts2对JSON的支持,允许我们在Action中返回JSON结果。 例如,要在Struts2 Action中返回JSON,你需要在Action类上添加`@Results`注解,指定一个JSON结果类型: ```...

    JQuery+Struts2+JSON0+Spring+Hibernat+XFire整合实例

    1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、com.morningstar.utility.WSUtility为调用WebService的客户端代码,在调用这个WebService返回...

    struts2+ajax 发送jquery请求分页,返回josn对象,引用js自动解析

    这里我们探讨的是如何使用Struts2框架配合Ajax(基于jQuery库)发送请求来实现分页功能,并返回JSON对象进行自动解析。 首先,我们需要理解Struts2框架。Struts2是一个基于MVC设计模式的Java Web框架,它提供了处理...

    JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例

    1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、com.morningstar.utility.WSUtility为调用WebService的客户端代码,在调用这个WebService返回...

    struts2基础入门pdf,struts2全面介绍

    - **JSON示例**:演示如何在Struts2中使用JSON技术进行前后端交互。 - **Struts2与JSON示例**:通过一个实际案例,展示如何在Struts2中实现基于JSON的数据传输。 #### 十三、集成Hibernate - **系统总体设计图**:...

    Struts2-注解第一个例子

    确保添加了核心库以及其他可能需要的插件,如Struts2 JSON插件等。 3. **创建Action类**: - 在`src`目录下创建一个名为`com.action`的包,并在其中创建一个名为`UserAction.java`的类。这个类继承自`...

    struts2的包

    - Struts2支持多种插件来扩展其功能,如JSON插件、FreeMarker插件、Tiles插件等,分别用于JSON数据交换、模板视图渲染和页面布局管理。 4. **配置机制** - XML配置:传统的配置方式,通过struts.xml文件来定义...

    Struts2内置拦截器简介

    Struts2提供了丰富的内置拦截器,这些拦截器可以单独使用,也可以组合使用,以满足不同的业务需求。接下来将详细介绍Struts2的一些主要内置拦截器及其应用场景。 #### 二、内置拦截器详解 1. **Auto-Wiring (自动...

    struts-2.5-lib

    7. **Java Annotation Support**:Struts 2 支持使用注解来配置Action、结果、拦截器等,因此JDK的注解库(如 `java.lang.annotation`)也会包含在lib中。 8. **Other Libraries**:可能还会有其他依赖库,如 JSON ...

    S2SH整合例子 注解配置 JSON 泛型Dao

    4. **注解配置**:在现代Java开发中,注解(Annotation)被广泛使用来替代XML配置,简化代码并提高可读性。在S2SH整合中,比如在Spring中可以使用`@Component`、`@Service`、`@Repository`、`@Controller`等注解声明...

    Struts2(例子)

    - **Result**:Action执行完毕后,会返回一个Result,用来决定如何呈现响应给用户,如转发到一个JSP页面或返回JSON数据。 - **Interceptor**:拦截器是Struts2的核心组件,可以理解为过滤器,它们在Action调用前后...

    json jar包

    4. **控制器处理**:在Spring MVC或Struts2的控制器中,创建返回JSON的处理方法。例如,在Spring MVC中: ```java @RequestMapping(value = "/getUser", produces = "application/json") public @ResponseBody User...

    整合struts2-spring-MyBatis

    5. **整合Struts2和Spring**:使用Spring插件`struts2-spring-plugin`,配置Struts2的拦截器链,使Struts2能够从Spring容器中自动注入Action。 6. **整合Spring和MyBatis**:通过Spring的`SqlSessionFactoryBean`...

Global site tag (gtag.js) - Google Analytics