0 0

关于整合struts2与json问题15

<?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>
<package name="default" namespace="/" extends="json-default">
	<action name="returnMsg" class="devmon.action.TestAction" method="returnMsg">   
		<result type="json"> 
			<param name="root">validate</param> 
		</result>   
	</action> 
	<action name="returnUser" class="devmon.action.TestAction" method="returnUser"> 
		<result type="json"> 
			<param name="includeProperties">userInfo\.userId,userInfo\.userName,userInfo\.password</param> 
		</result>   
	</action> 
	<action name="returnList" class="devmon.action.TestAction" method="returnList">   
		<result type="json"> 
			<param name="includeProperties">userInfosList\[\d+\]\.userName,userInfosList\[\d+\]\.password</param> 
		</result>   
	</action> 
</package>
</struts>

package devmon.action;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSONArray;

import org.apache.struts2.json.annotations.JSON;

import com.opensymphony.xwork2.ActionSupport;

public class TestAction extends ActionSupport {
	private String message;                //使用json返回单个值 
    private UserInfo userInfo;              //使用json返回对象 
    private List userInfosList;     //使用josn返回List对象 
 
   public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	public UserInfo getUserInfo() {
		return userInfo;
	}
	public void setUserInfo(UserInfo userInfo) {
		this.userInfo = userInfo;
	}
	public List getUserInfosList() {
		return userInfosList;
	}
	public void setUserInfosList(List userInfosList) {
		this.userInfosList = userInfosList;
	}
/*返回单个值*/   
   public String returnMsg(){   
        this.message = "成功返回单个值";  
        return SUCCESS; 
   }  
   /*返回UserInfo对象*/   
   public String returnUser(){ 
       userInfo = new UserInfo(); 
       userInfo.setUserId(10000); 
       userInfo.setUserName("刘栋"); 
       userInfo.setPassword("123456"); 
       return SUCCESS; 
   } 
  /*返回List对象*/   
   public String returnList(){   
       userInfosList = new ArrayList<UserInfo>(); 
       UserInfo u1 = new UserInfo(); 
       u1.setUserId(10000);   
       u1.setUserName("张三"); 
       u1.setPassword("111111"); 
       UserInfo u2 = new UserInfo(); 
       u2.setUserId(10001);   
       u2.setUserName("李四");   
       u2.setPassword("222222"); 
       userInfosList.add(u1); 
       userInfosList.add(u2);  
       return SUCCESS;   
   }
}

package devmon.action;

public class UserInfo {
	private int userId;  
    private String userName; 
    private String password;
	public int getUserId() {
		return userId;
	}
	public void setUserId(int userId) {
		this.userId = userId;
	}
	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;
	}
    
}


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>    
<%@ page contentType="text/html; charset=UTF-8"%>    
<%@ taglib prefix="s" uri="/struts-tags"%>    
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">    
<html>    
    <head>    
       <title></title>    
<script src="<%=request.getContextPath()%>/js/jquery2/jquery-1.4.4.min.js" type="text/javascript"></script>
<script language="javascript"> 
   function getMsg(){ 
      $.ajax({ 
         url:'returnMsg.action', 
         type:'post', 
         dataType:'json', 
         success:function(data){ 
        $("#result").html(data.message); 
         } 
      }); 
    } 

   function getUser(){ 
      $("#result").html("");  
      $.ajax({ 
         url:'returnUser.action', 
         type:'post', 
         dataType:'json', 
         success:function(data){ 
        $("#result").append("用户ID:"+data.userInfo.userId+"").append("用户名:"+data.userInfo.userName+"").append("密码:"+data.userInfo.password+""); 
         } 
      }); 
    } 

   function getUserList(){ 
      $("#result").html("");   
      $.ajax({ 
         url:'returnList.action', 
         type:'post', 
         dataType:'json', 
         success:function(data){ 
           $.each(data.userInfosList,function(i,value){   
          $("#result").append("第"+(i+1)+"个用户").append("用户名:"+value.userName+"").append("密码:"+value.password+""); 
           } 
         )} 
      }); 
    } 
</script> 
<div id="result"></div> 
<input type="button" value="获得单个消息" onclick="getMsg()"/> 
<input type="button" value="获得用户信息" onclick="getUser()"/> 
<input type="button" value="获得用户列表" onclick="getUserList()"/>  

引用

当启动tomcat和运行页面的时候没有问题,当点击jsp中的按钮调用js的时候回调数据就会报异常。异常如下,请高手帮我解决下啊。

ERROR (Dispatcher.java:512) - Could not find action or result
There is no Action mapped for action name returnList. - [unknown location]
	at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
	at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
	at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
	at java.lang.Thread.run(Thread.java:619)
2012年9月03日 14:34

2个答案 按时间排序 按投票排序

0 0

你配置了method="returnUser"
请求的时候需要带参数啊
  $.ajax({  
         url:'returnUser!returnUser',  
         type:'post',  
         dataType:'json',  
         success:function(data){  
        $("#result").html(data.message);  
         }  
      });  

2012年9月04日 16:14
0 0

There is no Action mapped for action name returnList. - [unknown location]    这个错误一般因为在struts2配置文件中没有定义returnList 这个action造成的。

你clean一下服务器试试 可能是因为没有部署

2012年9月03日 14:46

相关推荐

    struts2与json整合

    在探讨“Struts2与JSON整合”的主题时,我们深入分析了如何在Struts2框架中集成JSON技术,实现前后端数据的高效交互。Struts2作为一款流行的Java Web开发框架,提供了丰富的功能来简化Web应用程序的开发过程。而JSON...

    Struts2与JSON

    将Struts2与JSON整合,可以实现高效、动态的Web交互。 首先,我们要理解Struts2整合JSON的基本流程。在Struts2中,我们可以通过Action类返回一个JSON结果类型,这样Struts2会自动将Action的属性转化为JSON格式并...

    struts2-json-plugin源码

    在Struts2中,通过整合JSON插件,可以方便地将Action的返回结果转换为JSON格式,供前端JavaScript处理。 `struts2-json-plugin`是Struts2的一个插件,它使得Struts2能够处理JSON请求和响应,无需额外的配置或库。这...

    struts2+json+ajax整合例子(导入即可运行,附带详细教程)

    Struts2、JSON和AJAX是Web开发中的关键技术,它们的整合可以实现高效的数据交互和动态页面更新。本文将深入探讨这些技术以及如何在实际项目中整合它们。 **Struts2** 是一个基于MVC(Model-View-Controller)设计...

    struts2-json-lib

    整合Struts2和JSON的基本步骤如下: 1. 添加JSON插件到项目的类路径:确保`struts2-json-plugin-x.x.x.jar`在类路径中,并在`struts.xml`配置文件中启用JSON插件。 2. 配置Action:在Action类中,添加`@Result`注解...

    json2+jsonplugin struts2整合ajax时,使用json时需要的jar包

    在Struts2与Ajax的交互中,后端返回的JSON数据需要在前端被`json2.js`解析成可操作的对象,这样才能在页面上动态更新内容。 接下来,我们讨论Struts2的`jsonplugin`。Struts2 JSON插件是官方提供的一个扩展,它使...

    struts2整合JSON

    Struts2与JSON的整合主要依赖于JSON插件的支持,通过在`struts.xml`中配置Action以及指定结果类型为JSON,可以轻松实现将Java对象转换成JSON格式输出。这种整合方式不仅提高了数据传输效率,还简化了前端解析过程,...

    Struts2_JSON_Demo

    Struts2是一个流行的Java web框架,它为开发者提供了...通过以上知识点,你可以理解并实现Struts2与JSON的整合,创建能够高效、安全地处理JSON数据的web应用。在实际开发中,不断实践和优化,才能更好地掌握这一技术。

    struts2与json的整合

    ### Struts2与JSON的整合 #### JSON 插件简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Struts2框架支持与JSON插件的整合,这使得开发者能够...

    struts2 json Ajax 整合所需全部jar包.zip

    Struts2与JSON的整合使得服务器端可以通过JSON格式返回数据给客户端,从而提高了数据传输的效率和用户体验。在Struts2中,可以通过配置Action类和结果类型来实现JSON的输出。通常,我们需要在struts.xml配置文件中为...

    struts1+JSON实例

    总的来说,这个"struts1+JSON实例"旨在帮助初学者了解如何在Java Web应用中整合这些技术。通过学习这个实例,你可以掌握Struts1的MVC模式,理解数据库设计,以及掌握JSON和Ajax在实际项目中的应用。实践这些知识点,...

    json+struts2整合jar包

    标题中的"json+struts2整合jar包"指的是将JSON功能集成到Struts2框架中,以便在服务器端与客户端之间进行数据交互。Struts2提供了一个插件——Struts2-JSON-Plugin,用于支持JSON序列化和反序列化,使得Action类可以...

    struts2+json/ajax

    通过这种整合,开发者可以利用Struts2的强大功能处理后端业务逻辑,同时利用Ajax和JSON实现快速、无刷新的前端交互,提高用户体验。在实际开发中,还应注意安全问题,如防止XSS和CSRF攻击,以及正确处理JSONP跨域...

    整合jquery+json+struts2异步提交实例

    在这个实例中,“整合jquery+json+struts2异步提交”是一个典型的前端与后端交互的示例,利用了jQuery的Ajax功能和Struts2框架处理JSON数据。下面我们将详细探讨这些技术及其相互配合的工作原理。 **jQuery** 是一...

    struts整合json用到Jar.zip

    以上就是关于Struts整合JSON的基本知识点,通过这些步骤,开发者可以让Struts2应用能够便捷地与客户端进行JSON数据的交互,提高应用的灵活性和用户体验。在实际项目中,还需要根据具体需求进行调整和优化。

    struts2+json

    当我们在Struts2框架中整合SSH(Spring、Struts2、Hibernate)时,可能会遇到与JSON相关的数据处理问题。下面我们将深入探讨Struts2整合JSON的相关知识点。 首先,Struts2提供了一种内置的JSON支持,允许我们直接将...

    一个简单的struts2+json+jquery 交互的例子

    总结来说,这个例子展示了如何利用Struts2处理后端业务逻辑,使用JSON作为数据交换格式,以及通过jQuery在前端实现动态更新和与服务器的异步通信。了解和掌握这三个工具的整合使用,对于提升Web开发效率和用户体验...

    一个简单的 struts2-json 实例

    至此,一个简单的Struts2整合JSON的实例就完成了。需要注意的是,Struts2 JSON插件还支持自定义JSON配置,例如排除某些字段、设置日期格式等。同时,我们还可以通过拦截器或自定义结果类型来扩展其功能,以满足更...

    Struts2 整合jar包+json整合jar包+基本使用jar包

    例如,`struts2-spring-plugin.jar`允许你将Struts2与Spring框架集成,实现依赖注入和事务管理。 在实际开发中,还需要注意以下几点: 1. 配置Struts2的`struts.properties`文件,设置默认的Action包名和结果类型。...

Global site tag (gtag.js) - Google Analytics