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

Struts2.18 + jQuery + struts2-json-plugin

    博客分类:
  • Work
阅读更多
Json貌似现在非常的实用,很多人都在使用中。Json是javascript的子集,完全兼容js,使用起来也很方便。如何跟struts2来集成呢?
struts2已经提供了支持json的插件,只需我们把相应的jar包加到类路径下,并修改struts2的配置文件即可。
参考官网文档:http://cwiki.apache.org/WW/json-plugin.html

1.下载struts2相应jar包:
http://struts.apache.org/2.x/  下载最新版:2.1.8.1.

2.新建web工程:Jewelry
新建java文件 JsonPluginAction.java 包为:com.test.json.action
源文件:
package com.test.json.action;

//import com.web.action.BaseAction;
import java.util.HashMap;
import java.util.Map;
import org.apache.struts2.json.annotations.JSON;
import com.opensymphony.xwork2.ActionSupport;

public class JsonPluginAction extends ActionSupport// BaseAction
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	 private String field1 = "str";
   private int[] ints = {10, 20};
   private Map map = new HashMap();
   private String customName = "custom";
   
   private String username = null;
   private String password = null;

   //'transient' fields are not serialized
   private transient String field2;

   //fields without getter method are not serialized
   private String field3;

   public String execute() {
       map.put("John", "Galt");
       System.out.println("username="+this.username+";password="+this.password);

      return SUCCESS;
   }

   public String getField1() {
       return field1;
   }

   public void setField1(String field1) {
       this.field1 = field1;
   }

   public int[] getInts() {
       return ints;
   }

   public void setInts(int[] ints) {
       this.ints = ints;
   }

   public Map getMap() {
       return map;
   }

   public void setMap(Map map) {
       this.map = map;
   }
   @JSON(name="newName")
   public String getCustomName() {
       return this.customName;
   }

	public String getUsername()
	{
		return username;
	}

	public void setUsername(String username)
	{
		this.username = username;
	}

	public String getPassword()
	{
		return password;
	}

	public void setPassword(String password)
	{
		this.password = password;
	}

}


2.在src源文件下建立文件 struts.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

	<!-- Some or all of these can be flipped to true for debugging -->
	<constant name="struts.action.extension" value="action" />
	<constant name="struts.enable.DynamicMethodInvocation"
		value="false" />
	<constant name="struts.i18n.reload" value="false" />
	<constant name="struts.i18n.encoding" value="UTF-8" />
	<constant name="struts.devMode" value="true" />
	<constant name="struts.configuration.xml.reload" value="false" />
	<constant name="struts.custom.i18n.resources"
		value="globalMessages" />
	<constant name="struts.serve.static" value="true" />
	<constant name="struts.serve.static.browserCache" value="false" />
	<constant name="struts.ui.theme" value="simple" />

  <package name="example"  extends="json-default">
     <action name="JSONExample" class="com.test.json.action.JsonPluginAction">
        <result type="json"/>
     </action>
  </package>

</struts>


3.引入jar包:
struts2-json-plugin-2.1.8.jar

4.编写jsp文件:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path ;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test Json</title>

<script src="<%=basePath%>/resources/javascript/jquery/jquery.js" type="text/javascript"></script>
<script src="<%=basePath%>/resources/javascript/json2.js" type="text/javascript"></script> 

<script type="text/javascript">
	$(document).ready(function() 
	{
		// 直接把onclick事件写在了JS中
		$("#submit").click(function() 
		{
			$.getJSON("http://localhost:8080/Jewelry/example/JSONExample.action", 
			"username="+$("#username").val()+"&password="+$("#password").val(),
			function(data,textStatus) 
			{
				var tjstr =  JSON.stringify(data);
				alert(data.toString()+"="+textStatus+"=tjstr="+tjstr); 
			});
		});
	});
</script>

</head>
<body>
<div id="msg"></div> 
username: 
<input name="username" id="username" type="text"/><br/> 
password: 
<input name="password" id="password" type="password"/>
<br/> 
<input type="submit" id="submit" 
value="login"> 
</body>
</html>


部署工程,启动服务器,访问此jsp页面即可。


根据返回结果可知,json插件是把struts2的Action都变成json对象返回给客户端。
  • 大小: 49.1 KB
分享到:
评论
4 楼 javaroom 2011-03-21  
peng2e 写道
敢不敢把JR包放上来?谁有时间看你内代码去、直接上项目!

真无聊,人家辛苦地写代码感想给大家分享,你怎么这种态度?
3 楼 a3mao 2010-11-26  
peng2e 写道
敢不敢把JR包放上来?谁有时间看你内代码去、直接上项目!


我的代码就是博客里写的,其他都没别的了
2 楼 peng2e 2010-11-24  
敢不敢把JR包放上来?谁有时间看你内代码去、直接上项目!
1 楼 sgelove 2010-03-05  
不错,不过有个问题.result 你又试过配置多个吗?

相关推荐

    struts2-json-plugin-2.3.24-API文档-中文版.zip

    赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    结合这三个组件,开发者可以构建出响应式、动态的Web应用,后端使用Struts 2处理业务逻辑,通过JSON Plugin返回JSON数据,前端利用jQuery通过AJAX请求获取这些数据,然后动态更新页面,提高用户体验。这种前后端分离...

    struts2-json-plugin

    struts2-json-plugin,Struts JSON插件

    struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar

    struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar

    struts2-json-plugin-2.3.8.jar

    Struts2 JSON Plugin是针对Apache Struts2框架的一个重要组件,版本为2.3.8。这个插件主要的功能是让Struts2应用程序能够轻松地处理JSON(JavaScript Object Notation)数据格式,使得Web应用可以方便地进行JSON序列...

    Struts2+jQuery(不用JSON)实现局部刷新

    - **Struts2的JSON插件**:虽然题目要求不使用JSON,但通常情况下,Struts2通过JSON插件返回数据给jQuery是最方便的方式。不过,我们可以通过设置Content-Type为"text/plain"或"text/html",让Struts2返回非JSON...

    struts2-jquery-plugin-3.1.0.jar

    struts2-jquery-plugin-3.1.0.jar

    struts2 相关jar包 包含json-lib-2.1.jar+struts2-json-plugin-2.1.8.1.jar

    这个压缩包包含了两个关键的组件:json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar,它们是Struts2支持JSON(JavaScript Object Notation)序列化和反序列化的关键。 1. **json-lib-2.1.jar**: JSON是一种轻...

    struts2+json

    在Struts2中集成JSON支持,首先需要添加相应的依赖,比如struts2-json-plugin,这个插件提供了JSON结果类型。当Action执行完毕后,可以返回一个JSON结果类型,Struts2会自动将Action的属性转换为JSON格式并返回给...

    struts2-json-plugin源码

    `struts2-json-plugin`是Struts2的一个插件,它使得Struts2能够处理JSON请求和响应,无需额外的配置或库。这个插件不仅包含了源码,还包含了必要的配置文件和类,使得开发者可以深入理解其工作原理并进行自定义扩展...

    struts2+ajax+jquery

    此外,Struts2还提供了一个名为`struts2-jquery-plugin`的扩展,它封装了与jQuery的集成,简化了Ajax请求的创建。比如,使用`sj:submit`标签可以直接触发Ajax提交: ```jsp &lt;%@ taglib prefix="sj" uri="/struts/...

    struts2-jquery-plugin-2.0.0

    struts2-jquery-plugin-2.0.0 struts2-jquery-plugin-2.0.0 struts2-jquery-plugin-2.0.0

    struts2-json-plugin-2.2.1.jar

    struts2自带的json转换 倒入jar文件 struts.xml中 &lt;package ......extends="json-default" &lt;result type="json"/&gt;

    struts2+jquery 插件

    struts2+jquery 整合的jar包

    Struts2+Jquery+Ajax

    "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必不可少的组件。 "Struts2"可能是项目实例代码,包括Action类、视图...

    Json+Struts2+JQuery及JQuery相关插件的例子,json架包...

    通过这个例子,你可以学习到如何在实际项目中结合使用Struts2、JQuery和JSON,包括如何配置Struts2的JSON插件,如何在JQuery中处理JSON数据,以及如何利用JQuery的插件来美化和增强用户界面。同时,理解和掌握JSON的...

    struts2-json-plugin-2.2.3.1

    struts2-json-plugin-2.2.3.1能用的包

    struts2-json-plugin-2.3.15.1 -Lee修复bug版.jar

    struts2-json-plugin-2.3.15.1 -Lee修复bug版.jarstruts2-json-plugin-2.3.15.1 -Lee修复bug版.jarstruts2-json-plugin-2.3.15.1 -Lee修复bug版.jarstruts2-json-plugin-2.3.15.1 -Lee修复bug版.jar

    struts2-json-plugin-2.3.16.3.jar

    struts2 2.3.16.3 版本配置json所需要的jar文件。有时候版本不一致也会配置失败。

Global site tag (gtag.js) - Google Analytics