刚学的东东,搞了很久的一个小成果,在此与大家分享。。。
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的作用?????。。。也希望各位多多指教..非常感谢..小弟在此露脸了......)
分享到:
相关推荐
Struts2+JSON+JQuery实现简单的验证; 需要 JDK1.6+ tomcat5.0+ 支持~~~ 不说废话,上源码!!
struts2+json+jquery局部刷新实现注册验证,包括前台的用户名、密码、手机、身份证、邮箱(包含发邮件技术)、邮箱验证码、验证码的验证,用到的是json+jquery,后台则是用struts2+java类
struts2+easyUI+ajax+json用户登验证,代码没问题,可运行,适合初学者理解原理!
推荐阅读:JQuery+Ajax+Struts2+Hibernate框架整合实现完整的登录注册 在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码和所遇到的问题贴过来.在使用struts2+ajax...
学习时做的一个struts2框架下前台页面获取后台json格式的数据,list,map等。页面包含多级联动页面,登陆验证页面,获取后台map,list格式的json格式数据的页面。分享给大家学习。
struts2.1.8 最新注册 运用了jquery json 登陆验证 比较实用 每个项目估计都要用到 里面代码很全 包也加上了 jquery也有 拿来就可以用
自己开发的一个邮箱系统 用户验证是用的struts+json+jquery
Struts2——请求响应 Spring——java对象注入 Spring JDBC——数据库连接 Jquery UI——界面设计 JFreeChart——成绩分析 iText——成绩打印PDF格式 Ajax+Json——表单验证 系统登录用户: 学生用户(学号+密码+...
4.2 struts2框架实现数据校验.....................................................................................................................34 第 5章 国际化实现......................................
3. 在struts2的Action通过2种不同的实现方法返回json格式的字符串。 4. 针对商品实现简单无刷新上传与下载 4. 批量导入数据采用的是导入test文件夹下的测试压缩包upload.rar上传到服务器的临时目录,然后利用WinRar....
系统主要使用技术:Struts2——请求响应 Spring——java对象注入 Spring JDBC——数据库连接 Jquery UI——界面设计 JFreeChart——成绩分析 iText——成绩打印PDF格式 Ajax+Json——表单验证 用户角色: 学生用户...
主要介绍了Ajax验证用户的唯一性,验证环境Ajax+Jquery+Json+struts2,感兴趣的小伙伴们可以参考一下
技术实现:Struts2、JSP、MySQL、Jquery、Javascript、Ajax 、Json、JUnit 项目描述: 本项目主要实现了用户管理模块、商品分类展示模块、购物车模块、订单模块。 用户管理模块实现了用户注册、实时验证、用户登录...
Struts2 Struts2核心控制流程、Ognl、Action、Interceptor、Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。 熟练掌握Struts2核心...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...
1、用js和jQuery怎么进行表单验证 24 3、列举javaScript的3种主要数据类型,2种复合数据类型和2种特殊数据类型。 24 4、谈谈你的JS的理解? 24 5、ajax的优点? 25 6、简述一下ajax调试代码查找错误的方法? 26 7、...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...