`

struts2.2 项目搭建 以及与 struts2-json jquery 前后台进行交互

 
阅读更多
1.新建web项目 引人10个jar包(在附件中下载),名称如下
commons-fileupload-1.2.2.jar 
commons-io-2.0.1.jar
commons-logging-1.1.1.jar
commons-lang3-3.1.jar
commons-lang-2.5.jar
freemarker-2.3.16.jar
ognl-3.0.1.jar
struts2-core-2.2.3.jar
xwork-core-2.2.3.jar
javassist-3.12.0.GA.jar

2.在src下 新建一个struts.xml 内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>
	<constant name="struts.action.extension" value="html" />
	<package name="sysdefault" extends="struts-default" abstract="true">
		<result-types>
			<result-type name="json" class="org.apache.struts2.json.JSONResult"/>
		</result-types>
		<interceptors>
			<interceptor-stack name="mystack">
				<interceptor-ref name="defaultStack" >
					<param name="exception.logEnabled">true</param>
            		<param name="exception.logLevel">error</param>					
				</interceptor-ref>
			</interceptor-stack>
			<interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>
		</interceptors>
		<default-interceptor-ref name="mystack" />
	</package>
	
	<package name="zzghj_msg_test" extends="sysdefault">
		<action name="company" class="com.trt.CompanyAction" > 
			<result name="json" type="json"><param name="includeProperties">msg</param></result>
			<result name="index" >index.jsp</result>
		</action>
	</package>
</struts>


3.在web.xml配置  StrutsPrepareAndExecuteFilter,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
    <filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
		</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>


4.CompanyAction.java
/**
 * 
 */
package com.trt;

import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.exceptions.NativeException;

/**
 * @author Administrator
 *
 */
public class CompanyAction  extends AbstractAction{

	public String toIndex(){
		System.out.println("to index.jsp");
		return "index";
	}
	
	private String msg;
	public String testmsg() {
		String dport = paraPool.get("dport");
		String dpaud = paraPool.get("dpaud");
		String dphone = paraPool.get("dphone");
		System.out.println("dport:"+dport);
		System.out.println("dpaud:"+dpaud);
		System.out.println("dphone:"+dphone);
		JNative n = null;
		try {
			n = new JNative("mysms.dll", "InitModem");
			n.setRetVal(Type.INT);
			int i = 0;
			n.setParameter(i++, dport);
			n.setParameter(i++, dpaud);
			n.invoke();
			System.out.println(n.getRetValAsInt());
			String res = n.getRetVal();
			System.out.println("启动服务-返回结果:"+res);
			
			
			n = new JNative("mysms.dll", "SendSms");
			n.setRetVal(Type.INT);
			int j = 0;
			n.setParameter(j++, dport);
			n.setParameter(j++, dpaud);
			n.setParameter(j++, "Hello Wold");
			n.setParameter(j++, dphone);
			n.setParameter(j++, "FALSE");
			n.setParameter(j++, "FALSE");
			n.setParameter(j++, "FALSE");
			n.invoke();
			
			String res2 = n.getRetVal();
			System.out.println("发送结果:"+res2);
			msg = "启动结果:" + res + ",发送结果:" + res2;
		} catch (Exception e1) {
			System.out.println("启动服务出错了!");
			e1.printStackTrace();
			if (n != null) {
				try {
					n.dispose();// 释放资源
				} catch (NativeException e) {
					e.printStackTrace();
				} catch (IllegalAccessException e) {
					e.printStackTrace();
				}
			}
			msg = "error";
			return JSON;
		}
		return JSON;
	}
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}
	
	
}



5.配置完后 直接访问:
http://localhost:8080/zzmsg/company!toIndex.html

如果能正常访问 ,恭喜你 struts2.2你已经配置成功了


如果想用jquery 的 json 前后台进行交互 ,还需要引人一个包
struts2-json-plugin-2.3.15.1.jar

如此你的jsp就可以这样写:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
	String baseurl = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
%>
<c:set var="basepath" value="<%=request.getContextPath()%>" />
<c:set var="baseurl" value="<%=baseurl%>" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>网络报建系统</title>
 
<script src="${basepath}/common/js/base/jQuery.v1.4.2.js"></script>
<script src="${basepath}/common/js/base/jquery.form.js"></script>
<script src="${basepath}/common/js/base/common.js"></script>

<script>
	var telReg = /^1[3|4|5|8][0-9]\d{4,8}$/;
	var phoneReg = /^((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)$/;
	function add(){
		var url="${basepath}/company!testmsg.html";
	    var options = {
	        url: url,
	        type: 'post',
	        dataType: 'json',
	        success: function(data){
	        	if(data.msg=="error"){
					alert(data.msg);
				}
	            else{
	                alert("连接成功");
	                alert(data.msg);
	            }
	        }
	    };
	    $("form").ajaxSubmit(options);
	}
</script>
</head>
<body>
	<form method="post">
	<div class="">
  <div class="clear" style="height:50px;"></div>
  <div class="zghu_use_top"></div>
  <div class="zghu_use_mid">
    <div class="clear" style="height:15px;"></div>
    <div class="zghu_use_tit"><img src="${basepath}/common/images/company/13zghu_user_tit.png" /></div>
    <div class="clear" style="height:20px;"></div>
    <div class="zghu_use_stit">
      <div class="zghu_use_stcol01"><img src="${basepath}/common/images/company/13zghu_user_tu1.png" align="absmiddle" /></div>
       <div class="zghu_use_stcol02">短信测试</div>
    </div>
    <div class="clear" style="height:30px;"></div>
    <div class="zghu_use_row01">
      <div class="zghu_use_rtext">端口号:
      <input name="dport" id="dport" type="text" value="1" class="zghu_user_inp01" /></div>
      
    </div>
    <div class="clear" style="height:15px;"></div>
    <div class="zghu_use_row01">
      <div class="zghu_use_rtext">波特率:<input name="dpaud" id="dpaud" type="text" value="115200"  class="zghu_user_inp01"  /></div>
    </div>
    <div class="zghu_use_row01">
      <div class="zghu_use_rtext">手机:<input name="dphone" id="dphone" type="text" value="8615980842829"  class="zghu_user_inp01"  /></div>
    </div>
   <div class="clear" style="height:15px;"></div>
    <div class="zghu_use_row03" >
      <div class="zghu_use_thil"></div>
      <div class="zghu_use_thir" >&nbsp;&nbsp;
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      <input type="button" onclick="return add();" style="cursor: pointer;"  value="测试短信" /></div>
    </div>
    <div class="clear" style="height:30px;"></div>
  </div>
  <div class="zghu_use_btm"></div>
</div>
  	</form>
</body>


所需js  和 jar 包  在附件的测试例子demo中可以下载到。
分享到:
评论

相关推荐

    ssh-jquery-json

    4. 前端使用jQuery,可能有丰富的DOM操作和动画效果,利用AJAX与后台进行异步通信,获取JSON格式的数据,动态更新页面内容。 5. JSON作为数据交换格式,穿梭于前后端之间,使得数据传输变得简单且高效。 这个示例...

    jquery ajax json struts2最简单例子测试成功

    在IT行业中,jQuery、AJAX、JSON以及Struts2是四个非常重要的技术,它们在Web开发领域中扮演着核心角色。下面将详细解释这些技术及其相互间的集成。 **jQuery** 是一个快速、简洁的JavaScript库,它简化了HTML文档...

    Struts2 Tiles JSON jQuery Convention

    这个"Struts2 Tiles JSON jQuery Convention"的资料包可能是为了展示如何在Struts2框架下结合Tiles、JSON和jQuery实现高效、灵活的Web应用开发。下面将详细解释这些技术的结合以及它们如何协同工作。 1. **Struts2*...

    Struts2JQueryJson

    总的来说,Struts2JQueryJson项目是关于如何在Struts2框架下结合JQuery处理JSON数据的一个实战案例,涵盖了前端与后台的交互、数据的序列化和反序列化、以及前端动态渲染等内容。通过学习这个项目,开发者可以深入...

    struts2+jquery+json 小例子

    博客链接中提到的内容可能详细解释了如何配置Struts2的Action、Result以及如何在JSP页面中使用jQuery与服务器进行交互,同时展示了如何处理和返回JSON数据。这个小例子可以帮助初学者理解这三者如何协同工作,提升...

    AJAX和struts2传递JSON数组

    总结来说,通过这种方式,我们可以利用AJAX向Struts2 Action传递JSON数组,实现异步数据交互。这在动态更新页面内容、处理表单提交等场景下非常有用。同时,使用JSON作为数据交换格式,使得前后端的数据交换变得更加...

    struts2整合jquery实现层拖拽即时保存。源码

    将Struts2与jQuery整合,可以充分利用两者的优势,创建出具有丰富交互效果的动态Web应用。 在本项目中,"struts2整合jquery实现层拖拽即时保存",指的是利用jQuery的拖放功能(draggable)和Struts2的Action机制,...

    struts2+jquery+json+List

    Struts2、jQuery、JSON和List是Web开发中常见的技术栈,它们在构建动态、交互式的Web应用程序中扮演着重要角色。这篇博文可能是探讨如何在Struts2框架中结合jQuery和JSON来处理List类型的数据。 Struts2是一个流行...

    最简单的:Struts2+JSON+JQUERY+AJAX 完整DEMO源代码

    Struts2、JSON、JQUERY和AJAX是Web开发中常用的技术栈,它们结合使用能够构建出高效、交互性强的动态网页应用。本DEMO源代码提供了这些技术的集成示例,非常适合初学者理解和实践。 **Struts2** 是一个基于MVC...

    json_struts2.rar_JSON java_SSH json Struts2_java json_json_strut

    这个实例教程可能涵盖了如何设置Struts2的JSON支持,编写jQuery脚本进行AJAX请求,以及在后台处理这些请求的Struts2 Action。通过学习和实践这个例子,开发者可以掌握如何在Java Web应用中有效地利用JSON进行数据...

    struts2 ajax json

    在Struts2中,Ajax和JSON技术的结合使得前后端交互变得更加高效和实时,为用户提供了更好的体验。现在我们来深入探讨这些知识点。 首先,`Ajax`(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况...

    ajax_struts_jquery_json级联菜单

    在"ajax_struts_jquery_json级联菜单"的场景中,我们将看到如何利用这四种技术协同工作来创建这样的功能。 首先,Struts框架在后台处理业务逻辑。当用户在前端选择了一个父级菜单项后,Struts Action会接收到这个...

    struts2+jquery无刷新取后台数据

    总的来说,"struts2+jquery无刷新取后台数据"的实现是将Struts2的强大控制能力与jQuery的高效前端处理相结合,通过Ajax技术实现实时的前后端通信,提升用户体验。开发者应当熟练掌握Struts2的Action和Result配置,...

    struts2框架json传递后台数据到echarts

    在Struts2中,我们可以利用JSON(JavaScript Object Notation)这种轻量级的数据交换格式来有效地传输数据,尤其是在与前端交互时,如使用Echarts这样的数据可视化库。Echarts是一款基于JavaScript的开源图表库,它...

    Jquery通过JSON和Struts的Action交互[参照].pdf

    在SSH(Struts2、Spring、Hibernate)架构的项目中,使用jQuery与后台进行交互是常见的做法,特别是在处理异步请求时。本示例主要介绍了如何利用jQuery通过JSON与Struts2的Action进行数据交换,从而实现前端与后端的...

    uploadify+struts2+json前台动态向后台传数据

    本教程将详细讲解如何使用`uploadify`、`Struts2`和`JSON`技术实现前台动态向后台发送数据,以及展示后台返回参数来完成文件上传的功能。这三个组件在Web开发中各自扮演着重要的角色: 1. **Uploadify**:Uploadify...

    struts2+jquery+json+ajax的使用

    Struts2、jQuery和JSON是Web开发中常用的三大技术,它们在构建动态、交互式的Web应用中发挥着关键作用。Ajax则是实现页面无刷新更新的核心技术。在这个名为"ProductSystem"的项目中,我们将深入探讨这四者的结合使用...

    网页聊天(struts2+jquery)

    此外,项目还包含了必要的jar包,这些可能是Struts2框架的核心库、jQuery库以及其他可能的依赖,例如JSON处理库,因为聊天数据通常以JSON格式在前后端之间传递。在MyEclipse环境中,这些库文件帮助开发者快速构建和...

    struts2+json省市区级联显示

    在"struts2+json省市区级联显示"这个项目中,我们看到主要功能是通过Struts2框架与JSON数据配合,实现在用户选择省份时,无需刷新页面就能动态加载并显示对应的市、区级联列表。这种级联选择通常用于地址填写或者...

Global site tag (gtag.js) - Google Analytics