MyEclipse下struts2配置使用和Ajax、json的配合

原创文章,转载请注明:MyEclipse下struts2配置使用和Ajax、json的配合

新手,初学struts2的配置,同时尝试与Ajax通过json交互。首先介绍MyEclipse下struts2的配置。

1.struts2的配置

  右键项目,MyEclips->project facets->install apache struts(2.x)facets

  URL pattern我选择了*.action,libraries只选择了core

  1.1撰写action

    新建package,名为action。在action中新建hd_query_action.java,调用hibernate方法,实现数据获取,并返回。

//hd_query_action.javapackage action;
import com.opensymphony.xwork2.ActionSupport;

import java.sql.Timestamp;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.test.JSONAssert;

import com.cc.hibernate.*;
public class hd_query_action extends ActionSupport{
     private String queryText;//http请求参数,命名和http参数名必须相同。
     private JSONArray result;//返回的json

    //请求参数需要set方法,名称一定要是这种格式
     public void setQueryText( String queryText ){
         this.queryText = queryText;
     }
     //返回结果需要get方法
     public JSONArray getResult(){
         return result;
     }
     //程序入口
     public String execute() throws Exception {
         //定义druginfo数组
         System.out.println(this.queryText);
         JSONArray jsonArray=new JSONArray();
                 //hibernate DAO
         DrugInfoOperate DrugInfoOp=new DrugInfoOperate();
         System.out.println("2");
         List<DrugInfo>                   list=DrugInfoOp.queryDrugInfoWithKey(this.queryText);
         System.out.println("3");
                 //遍历数据集
         for( DrugInfo druginfo:list ){
              //获取数据,hibernate POJO
              String name=druginfo.getName();
              String func=druginfo.getFunc();
              String drugUsage=druginfo.getDrugUsage();
              Timestamp prodDate=druginfo.getProdDate();
              String manu=druginfo.getManufacturer();
              //打包json
              JSONObject json=new JSONObject();
              json.put("name",name);
              json.put("func",func);
              json.put("drugUsage", drugUsage);
              json.put("prodDate", prodDate);
              json.put("manufacturer", manu);
              //加入json数组
              jsonArray.add(json);
        }
        this.result=new JSONArray();//返回结果初始化
        result=jsonArray;
        return SUCCESS;
     }
}        

  1.2配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <package name="action" extends="json-default">
        <action name="hdQueryAction" class="action.hd_query_action">
        <result type="json"></result>
    </package>
</struts>    

  1.3action打包json

    用到了net.sf.json中的jar来解析json,所需jar包下载 百度云,下载后导入工程的lib。

2.js方法解析

<script>
        var json,json_str;
        //数据提交
        function submit_query(){
            var query_text=document.getElementById("u13").value;
            var reg=new RegExp(" ","g"); //创建正则RegExp对象
            //将空格替换为-
            query_text=query_text.replace(reg,"-");
            if( query_text.length>0 ){
                //调用jquery的ajax方法
                $.ajax({
                    type:"post",
                    url:"hdQueryAction.action",
                    data:{queryText:query_text},
                    dataType:"text",
                    success:function(msg){
                        json_str=eval("("+msg+")");
                        //alert(json_str.result);
                        json=json_str.result;
                        //第二种方法
                        //var obj=$.parseJSON(msg);
                                            //var state_value=obj.result;
                                            //alert(state_value);
                                            //json=state_value;
                                            //alert(json[0]);

                        var i=0;
                        var far=document.getElementById("u15");
                        far.innerHTML="";
                        for( i=0;i<json.length;i++ ){

                            var divC=document.createElement("div");
                            divC.setAttribute("class","query_results");

                            var divB=document.createElement("div");
                            divB.setAttribute("class","query_results_border");

                            var divN=document.createElement("div");
                            divN.setAttribute("class","query_results_name");
                            divN.innerHTML=json[i].name;

                            var divF=document.createElement("div");
                            divF.setAttribute("class","query_results_func");
                            divF.innerHTML=json[i].func;

                            var divU=document.createElement("div");
                            divU.setAttribute("class","query_results_usage");
                            divU.innerHTML=json[i].drugUsage;

                            var divM=document.createElement("div");
                            divM.setAttribute("class","query_results_manu");
                            divM.innerHTML=json[i].manufacturer;

                            divC.appendChild(divB);
                            divC.appendChild(divN);
                            divC.appendChild(divF);
                            divC.appendChild(divU);
                            divC.appendChild(divM);
                            far.appendChild(divC);
                        }
                        var divAuto=document.createElement("div");
                        divAuto.setAttribute("class","clearfloat");
                        far.appendChild(divAuto);
                    }
                });
            }
            else{
                alert("please input something");
            }
        }
    </script>
 

3.hibernate与struts2冲突

  在struts2的action里使用网页传参并使用hibernate的查询方法或者更新方法可能失效,原因参见关于Struts2与hibernate结合出错的问题!------java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I问题解决及总结。原因为MyEclipse导入的struts2和hibernate的jar包冲突,删除冲突的包的依赖即可。亲测可用,最后的jar包在一个lib下,所以不用担心某个框架无包可用。

时间: 2024-10-10 09:18:08

MyEclipse下struts2配置使用和Ajax、json的配合的相关文章

【Struts2】SSH如何返回JSON数据

  在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了.在这里以简单的Demo总结两种ssh返回Json格式的数据 项目目录如下 主要是看 上图选择的部分 WebRoot里面就是平常的配置 第一种方法是使用com.google.gson.Gson 将对象转化为Json字符串  (gson-1.6.jar) 主要的代码如下 1 package com.javen.tool; 2 3 import java.io.IOException; 4 import java.io.P

Myeclipse下配置struts2和hibernate

最近维护一个项目,是用struts2做的,所以特意学了下struts的入门,否则代码都看不懂啊.下面记录下过程.Myeclipse 版本为2014.struts2,hibernate为4.1. 1.既然要用到hibernate,自然要有个数据库了,我在localhost的数据库test里建了个表t_user; CREATE TABLE `t_user` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  `name` varchar(45) NO

struts2 + ajax + json的结合使用,实例讲解

struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法. 1.准备工作 ①ajax使用Jquery:jquery-1.4.2.min.js ②struts2与json的依赖包:struts2-json-plugin-2.2.3.jar PS:版本可自己控制!~ 2.过程 ①引入json依赖包 ②编写action类 ③配置struts.xml ④编写页面 ⑤测试 3.实例 ① action类,JsonAction  注

struts2+ajax+json使用实例

本文主要包含一个struts2+ajax+json的使用实例 步骤如下 1.准备工作 ①ajax使用Jquery:jquery-1.4.2.min.js ②struts2与json的依赖包:struts2-json-plugin-2.2.3.jar,json-lib PS:版本可自己控制!~ 2.过程 ①引入json依赖包 ②编写action类 ③配置struts.xml ④编写页面 ⑤测试 参考链接 struts2 + ajax + json的结合使用,实例讲解 - tfy1332的专栏 -

MyEclipse下创建的项目导入到Eclipse中详细的图文配置方法

一.情景再现. 有些人比较喜欢用Myeclipse开发,有些人却比较喜欢用eclipse开发.但是其中有一个问题,Myeclipse里面的项目导入的时候出现了一个小小的问题. 如下: 二.说明问题 导入的项目不仅包显示在外面,而且不能部署到tomcat中. 那我们需要如何的配置呢? 三.处理问题. 1.导入在MyEclipse下创建的项目 2.把项目变成Web项目,在项目上右键-->Properties-->选择Project Facets. 3. 选中红线框住的两项(java和Dynamic

windows/ Linux下 myeclipse和eclipse下安装配置hadoop插件

本人最近在windows上想写一个测试的程序MaxMapperTemper,然后身边没有服务器,所以想在win7上配置. 成功了.这里写下笔记希望对大家有帮助 安装和配置的步骤是: 我的是myeclipse 8.5 hadoop-1.2.2-eclipse-plugin.jar 1.安装Hadoop开发插件 hadoop安装包contrib/目录下有个插件hadoop-1.2.2-eclipse-plugin.jar,拷贝到myeclipse根目录下/dropins目录下. 2. 启动myecl

Myeclipse下配置SVN报错问题 svn: E175002: java.lang.RuntimeException: Could not generate DH keypair(转)

转:http://blog.csdn.net/yulong_1988/article/details/51459936 在myeclipse下安装svn插件,出现了Could not generate DH keypair,这么一个错误.  这个问题困扰了我半天时间,各种百度也找不到答案,或许是百度能力问题吧.百度出来的解决方法无非就是更换jdk,重装myeclipse,甚至有的说重装系统,其实我都试过了,jdk换了三个都不行,myeclipse更换了两个版本也是不行,看到了一篇博客说是svn接

Struts2 整合jQuery实现Ajax功能(2)

1.1.1   Action利用struts2-json-plugin-X.X.X.jar响应Json格式信息: 1.      function removerecordbyid(recordid){ 2.              $("#showallrecord table tr").each( 3.              function(){ 4.                var seq=parseInt($( this ).children( "td&

032.Ajax+Json+Jquery

AjjA: AjaxJ: JSONJ: jQuery -----------------------------------------------JSONJavascript Object NotationJS对象标记 class User{ public int Id{get;set;} public string Name{get;set;} public string Phone{get;set;} // public string HomeAddress{get;set;} // pu