0 0

struts2.1.8 +jquery easy ui,datagird的不到数据5

环境struts2.1.8,用自带的那个struts2-json-plugin-2.1.8.1.jar,jso页面调试时发现可以得到action里的json对象,但就是jquery easy ui的datagird 里通过url访问都没执行action,直接跳到input 对应的页面,设了s:fielderror查看了下,说返回的rows没值,验证错误,怎么回事,jsp里没有输入啊
action代码


@Controller
// 声明此类为控制层的类,且为prototype模式调用
@Scope("prototype")
@ParentPackage("json-default")
@Results( {

		@Result(name = "success",type = "json"),
	 	 @Result(name = "input",location = "/product/productUnitManage.jsp") })
public class ProdUnitAction extends ActionSupport {

	private static final long serialVersionUID = -6595716080263610502L;
 
	private ScmProdUnit scmProdUnit ;
	private List<ScmProdUnit> rows =new ArrayList<ScmProdUnit>();;
	private int page;
	private int total;

	@Resource
	private ProdUnitService prodUnitService;

	public String save() throws Exception {
		this.prodUnitService.save(this.scmProdUnit);
		return "save";
	}

	public String update() throws Exception {
		this.prodUnitService.update(this.scmProdUnit);
		return "update";
	}

	public String delete() throws Exception {
		this.prodUnitService.delete(scmProdUnit);
		return "delete";
	}

	public String querybyID() throws Exception {
		scmProdUnit = prodUnitService.findById(ScmProdUnit.class, scmProdUnit
				.getId());
		return "item";
	}

	//@Action(value="querybyBuilde",results={@Result(type="json",name="success")})  
	public String querybyBuilde() throws Exception {	
		System.err.println("111111");
		StringBuffer sql = new StringBuffer();

		sql.append("from ScmProdUnit where 1=1 ");
	
		this.setRows(prodUnitService.findByConsion(sql.toString()));
//		this.setTotal(rows.size());
		System.err.println("2222222");

        return SUCCESS;


	}
	@JSON(serialize = false) 
	public ScmProdUnit getScmProdUnit() {
		return scmProdUnit;
	}

	public void setScmProdUnit(ScmProdUnit scmProdUnit) {
		this.scmProdUnit = scmProdUnit;
	}


	public List<ScmProdUnit> getRows() {
		return rows;
	}

	public void setRows(List<ScmProdUnit> rows) {
		this.rows = rows;
	}

	public int getTotal() {
		return total;
	}

	public void setTotal(int total) {
		this.total = total;
	}

	public int getPage() {
		return page;
	}

	public void setPage(int page) {
		this.page = page;
	}

}

jsp页面代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>

		<title>test</title>
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">

		<!--  	<link rel="stylesheet" type="text/css" href="../_main.css" />-->
		<link rel="stylesheet" type="text/css" href="../js/themes/default/easyui.css">
		<link rel="stylesheet" type="text/css" href="../js/themes/icon.css">
		<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
		<script type="text/javascript" src="../js/jquery.easyui.min.js"></script>
		<script type="text/javascript" src="../js/locale/easyui-lang-zh_CN.js"></script>	
	<script>
  	 
	 $(function(){
	$('#datalist').datagrid({
		title:'单位列表',   
	    iconCls:'icon-ok', 
	    nowrap: false,  //是否只显示一行,即文本过多是否省略部分。
	    striped: true,  //隔行变色
	    singleSelect:true,  
	    url:'prod-unit!querybyBuilde.action',  
	    pagination:true,  
	    rownumbers: true,
	    loadMsg:'数据加载中请稍后……',
	    columns:[[   
	        {field:'itemid',checkbox:true},   
	        {field:'code',title:'单位编码',width:$(this).width()*0.4,align:'center'},   
	        {field:'name',title:'单位名称',width:$(this).width()*0.6,align:'center'}	    
     ]], 	    
	    toolbar: [{
            text: '添加',
            iconCls: 'icon-add',
            handler: function() {
            alert('添加数据')
            }
        }, '-', {
            text: '保存',
            iconCls: 'icon-save',
            handler: function() {
            alert('保存数据')
            }
        }]		
		});	
	});
	 

	function getjsontest()
	{
		$.post("prod-unit!querybyBuilde.action",
			{			
			},function(returnData,status)
			{
			if("success" == status)
				{
				alert("11111");
				//var dataa= eval('('+returnData+')'); 
				//alert(returnData.length);
			alert(returnData);
								}
			},"json"
		);
	} 
		 
	
</script>
</head>
	<body>
		 <form id="myForm" method="post">
		 
			<fieldset>
				<legend>
					test
				</legend>
				<table width="100%" border="0" cellpadding="1" cellspacing="4"
					class="tableStyle">
					
					<tr align="center">
						<td >
							<input name="btnQuery" type="button" onClick="getjsontest()"
								class="button" value="查 询">							
						</td>
					</tr>
				</table>
			</fieldset>


			<table id="datalist"></table>

<div id="result"></div>


<div style="color:red">
    <s:fielderror />
</div>

	</form>
		 

	</body>
</html>



jsp页面执行查询按钮,firebug里可以看到action返回数据
{"code":null,"name":null,"page":0,"rows":[{"code":"xiang","id":1,"name":"箱","remark":null},{"code":"ping","id":2,"name":"瓶","remark":null},{"code":"he","id":3,"name":"盒","remark":null}],"total":0}
但刚载入页面的时候,
$(function(){
$('#datalist').datagrid({.....里这一段,url里设定的地址根本就没执行到action里面的方法,

<div style="color:red">
    <s:fielderror />
</div>
调试时说 Invalid field value for field  rows,action方法没执行当然为空了,它直接转到result里的input了。现在纳闷就是为什么会转,我jsp里只是显示一个datagrid,别的什么也没有啊,本来以为js有问题,瞅半天也没发现啊,什么原因啊???????

又试了试,发现action继承了actionSuppoet后有上面问题,去掉actionSuppoet就可以了,估计是actionSuppoet里校验出了问题,easyui的datagrid传给action的rows是int类型,但action定义了成了list,所以报类型转换错误,可这个grid插件得到返回的rows数据类型是json对象里的list,一种解决办法去掉变量rows,直接jsonObject里吧list给"rows"这个key,但我不想这样做,那应该怎么改啊?
2010年11月04日 22:08
目前还没有答案

相关推荐

    struts2.1.8+json+jquery

    总结来说,"struts2.1.8+json+jquery"的组合展示了如何在Java Web开发中利用Struts2处理业务逻辑和HTTP请求,通过JSON高效地传输数据,以及利用JQuery在前端实现动态页面效果。这种技术栈可以提高开发效率,简化前后...

    struts2.1.8+json+jquery1.3实现ajax

    在这个项目中,`struts2.1.8+json+jquery1.3实现ajax`,开发者可能做以下步骤: 1. 配置Struts2:首先,需要在Struts2的配置文件(struts.xml)中配置Action,指定返回JSON类型的结果。这通常通过在Action类的方法上...

    struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _02部分

    分为:struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _01部分 struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _02部分 只要将这两个包全下载下来,就可以搭建struts2.1.8 + spring 2.5 + ibatis2整合开发的...

    struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _01部分

    分为:struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _01部分 struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _02部分 只要将这两个包全下载下来,就可以搭建struts2.1.8 + spring 2.5 + ibatis2整合开发的...

    Struts2.1.8+Felix1.4+hibernate集成源码

    Struts2.1.8+Felix1.4+hibernate集成源码,内部是自己通过查资料以及编写部分中间件host-register完成Hibernate3.1.3,Struts2.1.8,felix-1.4的集成。该部分的说明会在博文中说明,敬请关注,大家共同进步。

    spring3.0+struts2.1.8+hibernate3.2完整jar包

    spring3.0+struts2.1.8+hibernate3.2完整jar包 ,保证非常全,放心下载使用。请使用struts2.1.8,如果你已经在学习2.1.6版本,并且遇到类似xwork的异常,导致tomcat无法正常启动,可将struts2.1.8和xwork2.1.6两个包...

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

    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、...

    Struts2.1.8+Spring2.5.6+Hibernate3.3.2项目整合

    Struts2.1.8+Spring2.5.6+Hibernate3.3.2是经典的Java Web开发框架组合,常被称为SSH。这三个框架协同工作,为开发者提供了强大的模型-视图-控制器(MVC)架构支持,使得企业级应用的开发更加高效和模块化。 Struts...

    struts2.1.8+spring2.5.6+hibernate3.3.2

    struts2.1.8 + spring2.5.6(支持注解开发Annotations) + hibernate3.3.2(支持注解开发Annotations) + mysql-connector-java-5.1.7-bin.jar 精简完整版,测试可用

    Struts2.1.8+Hibernate3.3+Spring3.0环境搭建

    Struts2.1.8+Hibernate3.3+Spring3.0是经典的Java Web开发框架组合,也被称为SSH(Struts2、Spring、Hibernate)。这个环境的搭建涉及到多个步骤,涵盖了MVC(Model-View-Controller)框架、持久化框架和依赖注入...

    struts2.1.8+hibernate3.1(零配置)增删改查

    在这个"struts2.1.8+hibernate3.1(零配置)增删改查"的案例中,我们将深入探讨如何在不编写大量XML配置文件的情况下,通过Struts2的零配置特性与Hibernate的数据持久化能力进行集成,以实现对数据库的基本操作。...

    struts2.1.8+spring2.5.6

    Struts2.1.8与Spring2.5.6是两个经典的Java企业级开发框架,它们在J2EE(Java 2 Platform, Enterprise Edition)应用中扮演着重要的角色。Struts2是一个强大的MVC(Model-View-Controller)框架,而Spring则是一个...

    struts2.1.8+spring2.5+hibernate3.2+ext3.0框架整合笔记(四)

    struts2.1.8+spring2.5+hibernate3.2+ext3.0框架整合笔记的最终版本,整合过程见于:http://blog.csdn.net/phoenixdsf/article/details/7645655

    spring2.5.6 +struts2.1.8+hiernate3.3.2(jar)

    标题中的"spring2.5.6 +struts2.1.8+hiernate3.3.2(jar)"指的是一个集成开发环境,它包含了三个关键的Java Web框架:Spring 2.5.6、Struts 2.1.8和Hibernate 3.3.2。这些框架在Java应用开发中扮演着重要的角色,尤其...

    struts2.1.8+spring+hibernate框架整合所需jar包

    Struts2.1.8是Struts2的一个版本,它可能包含了一些特定的功能或修复了某些已知问题。 Spring框架是一个全面的后端解决方案,包括IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向...

    struts2.1.8+spring2.5+hibernate3.2+ext3.0框架整合笔记(二)

    以上是关于"struts2.1.8+spring2.5+hibernate3.2+ext3.0框架整合"的主要知识点,整合过程涉及到多个层次的配置和调优,对于开发者来说,理解这些框架的核心原理和整合机制至关重要。在实际项目中,根据具体需求选择...

    Struts2.1.8+Spring2.5.6+hibernate3.2.3整合

    在Struts2.1.8版本中,它引入了拦截器(Interceptor)机制,使得请求处理更加灵活和可扩展。通过配置struts.xml,我们可以定义Action类,指定其执行的方法,并设置拦截器链来处理请求前后的逻辑。 Spring 2.5.6作为...

    struts2.1.8+hibernate3.6.1+spring2.5.6架包

    总结起来,这个"struts2.1.8+hibernate3.6.1+spring2.5.6"整合包为Java Web开发者提供了一套成熟的开发环境,帮助他们快速搭建基于MVC、ORM和DI/AOP的项目,减少了集成不同框架时的复杂度,促进了代码的整洁性和可...

    Struts2.1.8+Hibernate3.3+Spring3.0整合所.rar.rar

    Struts2.1.8+Hibernate3.3+Spring3.0整合是一个常见的Java企业级应用开发模式,这种集成框架的使用旨在优化后端服务,提高开发效率,并提供灵活的数据持久化解决方案。以下是对这个集成知识点的详细说明: **Struts...

    struts2.1.8+spring2.5.6+hibernate3.3.2整合项目开发

    在"struts2.1.8+spring2.5.6+hibernate3.3.2整合项目开发"中,首先我们需要理解这三个框架的基本概念和用法: 1. **Struts2**:Struts2是一个基于MVC设计模式的Web应用框架,用于构建可维护性和可扩展性高的应用...

Global site tag (gtag.js) - Google Analytics