`
LD_21
  • 浏览: 129491 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Struts2+JSON+JQuery实现简单验证

    博客分类:
  • s2sh
阅读更多

刚学的东东,搞了很久的一个小成果,在此与大家分享。。。

 

1.创建struts_JSON项目,加入struts2所需的六个包,分别为:commons-fileupload-1.2.1.jar, commons-io-1.3.2.jar, freemarker-2.3.15.jar , ognl-2.7.3.jar,  struts2-core-2.1.8.1.jar , xwork-core-2.1.6.jar 。

 

2.创建web.xml 和 struts.xml 代码分别如下:

   web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	
    <display-name>Struts JSON</display-name>

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

	<welcome-file-list>
	  <welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

 

 

    struts.xml

 

<?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>
<!--
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />

    <include file="example.xml"/>

    <package name="default" namespace="/" extends="struts-default">
        <default-action-ref name="index" />
        <action name="index">
            <result type="redirectAction">
                <param name="actionName">HelloWorld</param>
                <param name="namespace">/example</param>
            </result>
        </action>
    </package>
-->
	<!-- Add packages here -->
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.devMode" value="true" />
    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
    
    <package name="json test" namespace="/" extends="json-default">
    	<default-action-ref name="login"></default-action-ref>
    	<action name="login" class="com.action.LoginAction">
    		<result type="json">
    			<param name="root">tip</param>
    		</result>
    	</action>
    </package>
    
</struts>

 

 

3.加入JSON 所需的包共七个包,都是可以在struts-2.1.8.1\lib 目录下可以找得到的,他们分别为:json-lib-2.1.jar, struts2-json-plugin-2.1.8.1.jar,(这两个是JSON所必须的包) ezmorph-1.0.3.jar, commons-collections-3.2.jar, commons-beanutils-1.7.0.jar, commons-logging-1.0.4.jar, commons-lang-2.3.jar 。(因为json大量引用了Apache commons的包,所以需要引入commons的四个包。)

 

4.创建model :User.java

 

package com.model;

public class User {

	private String username="";
	private String password="";
	
	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;
	}
}

 

 

5.创建action: LoginAction.java:

 

package com.action;

import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONObject;

import com.model.User;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class LoginAction extends ActionSupport {

	User user;
	private String tip="";
	
	public String execute() throws Exception {
		String username=user.getUsername();
		String password=user.getPassword();
		username=URLDecoder.decode(username, "utf-8");    //中文传参处理
		System.out.println("Username:"+username+" , Password:"+password);  //测试运行进度		
			
		Map<String,String> map=new HashMap<String,String>();
		map.put("username", username);
		JSONObject jo=JSONObject.fromObject(map);
		tip=jo.toString();
		System.out.println("Get Tips:"+tip);

		return SUCCESS;
	} 
	
	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public String getTip() {
		return tip;
	}
	public void setTip(String tip) {
		this.tip = tip;
	}
	
}

 

6.创建View login.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>Struts2+jQuery+JSON 登陆验证</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<style type="text/css">
		.decorate{               /*控制文本框样式*/
			border:1px solid #F00;
			background:url(images/text_bg.gif) repeat-x;;
			background-position:bottom;	
		}
	</style>
	<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
	<script type="text/javascript">
		$(function(){
			//var username=$("#username"); //抓取对象
			//var password=$("#password");
			$("#validate").click(function(){
				var username=$("#username").val();  //只能使用在jQuery 函数的里面
				var password=$("#password").val();  
				if(username==""||password==""){
					alert("用户名或密码不能为空!");
				}else{
					var url="login?user.username="+encodeURI(encodeURI(username))+"&user.password="+encodeURI(encodeURI(password));
					$.getJSON(url,null,function(data){
						 // convert to json object 
						//alert(data);
						var message=eval("("+data+")");
						$("#tip").html("欢迎您!"+message.username);	
					});
				}
			});

			$("#username").keyup(function(){
				var username=$("#username").val();
				if(username==""){
					$("#username").addClass("decorate");
				}else{
					$("#username").removeClass("decorate");
				}
			});
			$("#password").keyup(function(){
				var password=$("#password").val();
				if(password==""){
					$("#password").addClass("decorate");
				}else{
					$("#password").removeClass("decorate");
				}
			});
		});
	</script>
  </head>
  
  <body>
	<div id="tip" style="color:#F00; font-weight:bold; "></div>
		<fieldset style="width:600px; ">
			<legend>用户登录</legend>
			<p align="center">账号:<input type="text" name="user.username" id="username" class="decorate" /></p>
			<p align="center">密码:<input type="password" name="user.password" id="password" class="decorate" /></p>
			<p align="center"><input type="submit" id="validate" name="validate" value="确定" /></p>
		</fieldset>
  </body>
</html>

  (注:这里引入了jquery-1.4.2.min.js 的JS插件,同时在body中,不可以在加上 form的标签,否则,在“tip”中不能正常显示,而且也返回不了数据疑问中???是不是jQuery的作用?????。。。也希望各位多多指教..非常感谢..小弟在此露脸了......)

分享到:
评论
3 楼 yllmax 2011-12-03  
(注:这里引入了jquery-1.4.2.min.js 的JS插件,同时在body中,不可以在加上 form的标签,否则,在“tip”中不能正常显示,而且也返回不了数据疑问中???是不是jQuery的作用?????。。。也希望各位多多指教..非常感谢..小弟在此露脸了......)

你把<input type="submit" id="validate" name="validate" value="确定"/>中的type="submit"改成type="button"试一试.
2 楼 LD_21 2011-10-19  
VincentBoy 写道
不错 啊。
请问一下,你还有没有这个struts_JSON项目的源码 啊 我想仔细看看
我的邮箱:  yi_changgong@126.com

非常感谢。 

换电脑了,都在以前的电脑上。。。
1 楼 VincentBoy 2011-10-18  
不错 啊。
请问一下,你还有没有这个struts_JSON项目的源码 啊 我想仔细看看
我的邮箱:  yi_changgong@126.com

非常感谢。 

相关推荐

    Struts2+JSON+JQuery实现简单的验证

    5. **JQuery验证**:在Ajax的success回调函数中,接收到服务器返回的JSON数据后,根据返回的“success”或“error”判断验证结果。如果验证失败,显示错误信息;如果成功,可以继续进行提交或者跳转到其他页面。 6....

    struts2+json+jquery局部刷新实现注册验证

    struts2+json+jquery局部刷新实现注册验证,包括前台的用户名、密码、手机、身份证、邮箱(包含发邮件技术)、邮箱验证码、验证码的验证,用到的是json+jquery,后台则是用struts2+java类

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

    总结起来,这个项目结合了Struts2的Action和JSON支持,利用jQuery的Ajax功能,实现了客户端与服务器之间的数据交互,达到了动态更新页面的目的。对于Web开发者来说,了解这种技术组合有助于提高开发效率和用户体验。

    struts2+spring+hibernate+jquery+json

    Struts2、Spring、Hibernate、jQuery 和 JSON 是五个在IT行业中极为重要的技术组件,它们各自在Web应用开发中扮演着不同的角色。这篇文章将详细介绍这些技术的整合使用以及它们的功能。 首先,Struts2 是一个基于 ...

    struts2.1+json+jquery用户名校验

    总的来说,这个项目展示了如何利用Struts2.1作为后端服务,通过JSON进行数据传输,结合jQuery实现前端的异步用户名校验功能。这样的设计提高了用户体验,因为它允许用户在提交表单之前就得知用户名是否有效,而无需...

    struts2.1+json+jquery1.4实现用户名校验

    Action可能使用了Struts2的JSON插件来返回一个JSON响应,这个响应包含了验证结果。例如,响应可能是这样的JSON对象: ```json { "status": "success", "message": "用户名可用" } ``` 客户端的jQuery代码会监听...

    struts2+jquery+json+ajax例子

    总结起来,"struts2+jquery+json+ajax"的例子展示了如何利用这些技术协同工作,实现一个无刷新的登录界面,提供流畅的用户体验。通过Struts2处理业务逻辑和数据验证,jQuery和Ajax负责前后端的通信,JSON作为数据...

    struts2+json_jquery

    在Struts2中结合JSON(JavaScript Object Notation)和jQuery技术,可以实现高效、动态的前端交互效果。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析和生成。jQuery则是一个快速、简洁的...

    flexigrid+struts2+json+jquery实例

    总的来说,这个实例展示了如何利用Flexigrid、Struts2、JSON和jQuery构建一个交互性强、功能完善的Web应用,实现了数据的动态加载、灵活的用户交互以及后端数据的高效传输。这样的组合在现代Web开发中非常常见,因为...

    struts2+ajax+jquery

    在这个"struts2+ajax+jquery"的主题中,我们将深入探讨如何利用Struts2、jQuery和Ajax技术实现Web页面的异步交互。 首先,Struts2作为MVC框架,它的核心是Action,它负责处理用户的请求,并通过配置的Result返回...

    SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白

    这个压缩包中的资源,"SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白",显然提供了一个使用这些技术实现Ajax级联操作的实例。下面将详细介绍这些技术及其在Ajax操作中的应用。 **SSH ...

    struts2+json/ajax

    测试文件可能包括JUnit测试用例,用于验证Struts2和JSON集成的功能是否正常工作,以及Ajax请求是否能正确地与服务器进行通信并接收预期的JSON响应。 通过这种整合,开发者可以利用Struts2的强大功能处理后端业务...

    Struts2+JSON 实现AJAX 返回对象和列表

    ### Struts2+JSON 实现 AJAX 返回对象和列表 #### 一、背景介绍 随着Web技术的发展,Ajax(Asynchronous JavaScript and XML)已经成为现代Web应用不可或缺的一部分。它通过后台与前端进行异步数据交换和操作,使...

    struts2+jquery+json 小例子

    在这个"struts2+jquery+json"的小例子中,我们可能会看到以下几个关键知识点: 1. **Struts2框架**: - **Action和Result**:Struts2的核心组件,Action负责业务逻辑处理,Result负责控制页面跳转。 - **...

    Struts2+Jquery+Ajax

    8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必...

    struts2+ibatis+Spring+Json+jquery

    在tests2si目录下,可能包含的是测试相关的文件,这些文件可能包括单元测试、集成测试,用于验证Struts2、Spring、iBatis以及jQuery的整合是否正常工作。测试文件通常会模拟用户操作,调用后端接口,检查返回的数据...

    json + struts2 + 80个JQuery 效果 个例子

    总的来说,这个压缩包提供了一个全面的学习资源,帮助开发者深入理解并熟练运用JSON数据格式、Struts2框架和jQuery库。通过这些实例,你可以提高Web开发技能,尤其是处理动态交互和数据交换的能力。在实践中不断探索...

    struts2+easyUI+ajax+json用户登验证

    总结来说,"struts2+easyUI+ajax+json用户登录验证"项目是Web开发中的典型应用场景,展示了如何利用这些技术实现前后端交互和动态页面更新,为初学者理解Web开发的基本流程和原理提供了很好的实例。

    Struts2+JSON完美是用

    当Struts2与JSON结合时,它可以实现服务器端与客户端的高效数据交换。这种结合主要体现在以下几个方面: - **Action配置**:在Struts2中,你可以为每个Action配置一个结果类型为“json”的结果。这将在Action执行...

Global site tag (gtag.js) - Google Analytics