MyEclipse下Struts2配置使用和Ajax、JSON的配合
原创文章,转载请注明:MyEclipse下Struts2配置使用和Ajax、JSON的配合 By Lucio.Yang
新手,初学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.java
package 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.JavaScript方法解析
<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下,所以不用担心某个框架无包可用。
MyEclipse下Struts2配置使用和Ajax、JSON的配合的更多相关文章
- MyEclipse下JDBC-MySQL配置总结
原创文章,转载请注明:MyEclipse下JDBC-MySQL配置总结 By Lucio.Yang 新手,初期配置未成功,后将网上的方法几乎全部尝试才弄好,下面的方法全而不简练,希望高手指正. 1. ...
- myEclipse下Maven配置操作
一.Maven 安装与配置 1.点击计算机属性里的高级系统设置,点开环境变量进行配置 2.检验配置是否成功 二.手动创建一个Maven项目,并编译运行成功 1.创建一个文件夹作为项目的根目录 2. 在 ...
- MyEclipse下怎么配置Maven
这个很简单. 前期博客,请移步: Eclipse下Maven新建项目.自动打依赖jar包(包含普通项目和Web项目) 截图示范:
- 【Struts2】SSH如何返回JSON数据
在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了.在这里以简单的Demo总结两种ssh返回Json格式的数据 项目目录如下 主要是看 上图选择的部分 WebRoot里面就 ...
- struts2 + ajax + json的结合使用,实例讲解
struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法. 1.准备工作 ①ajax使用Jquery:jquery-1.4 ...
- MyEclipse下创建的项目导入到Eclipse中详细的图文配置方法
一.情景再现. 有些人比较喜欢用Myeclipse开发,有些人却比较喜欢用eclipse开发.但是其中有一个问题,Myeclipse里面的项目导入的时候出现了一个小小的问题. 如下: 二.说明问题 导 ...
- struts2:使用JQuery、JSON和AJAX处理请求
目的 在struts2中使用JQuery.JSON.AJAX等技术处理用户请求,并返回结果.返回结果可以是以JSONObject的方式返回,也可以是以JSONArray方式返回结果. 实现 1. 创建 ...
- Eclipse和MyEclipse使用技巧--MyEclipse下创建的项目导入到Eclipse中详细的图文配置方法
一.情景再现. 有些人比较喜欢用Myeclipse开发,有些人却比较喜欢用eclipse开发.但是其中有一个问题,Myeclipse里面的项目导入的时候出现了一个小小的问题. 如下: 二.说明问题 导 ...
- 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 ...
随机推荐
- php上传图片到server
php文件上传中会用到$_FILES系统函数 一.$_FILES系统函数 PHP编程语言中的常见的$_FILES系统函数使用方法有: $_FILES['myFile']['name'] 显示clien ...
- Fix The thread xxx has exited with code 259 (0×103)
When run the test case in VS2013, you may encounter below problem After test case end, it will show ...
- 使用ionic与cordova(phonegap)进行轻量级app开发前的环境配置与打包安卓apk过程记录
前言 有人说:"如果你恨一个人,就让ta去接触cordova(phonegap)",这是因为这里面的水很深,坑很多,真让人不是一般地发狂.或许有幸运的人儿基本顺顺利利就配置完环境 ...
- C# - ADO.Net 调用存储过程
------------------------存储过程调用,创建DataSet:----------------------//数据库连接字符串string connStr = @"Dat ...
- js基础——属性操作
html属性:属性名——属性值 操作:读 . 写 读操作:用来获取.找到属性名对应的属性值,方法:元素.属性名 例如:var oBtn = document.getElementById('btn1' ...
- CDH(cdh5.7) 上集成 kafka
CDH 可以在线下载: 离线安装
- EC读书笔记系列之7:条款12 复制对象时勿忘其每一个成分
记住: ★copying函数应确保复制“对象内的所有成员变量”及“所有base class成分” ★不要尝试以某个copying函数实现另一个copying函数.应该将共同机能放进第三个函数中,并由两 ...
- 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。
描述 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数. 输入 第一行为M,表示测试数据组数.接下来M行,每行包含一个测试数据. 输出 ...
- Qt 圆角矩形+鼠标左键拖动窗口
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWind ...
- java web项目修改项目名称
前几天在网上下了个项目,感觉名字长,所以想把项目改名字. 把项目导入到myeclipse中,将项目改名后, 还需要选中项目右键,properties ,修改项目的Context Root的名字.