使用MAVEN搭建SSH框架一 搭建struts2 二

    根据上一篇文章,我们已经struts2的包了,那么下面我们配置struts2,并完成一个登录的小例子。因为网上这类JSP的例子已经非常的多了,那么,我在这里提供一下ajax请求json数据的struts2的小例子。下面请看代码!!!

    给大家看一下我的目录结构:

  

    首先是web.xml的配置,在这里我们需要配置struts2的拦截器,因为我用的是最新版本2.3.15.3,拦截器跟以前的版本不同了,并且配置方法,供前台调用的方式也有所区别了。

    web.xml:

   

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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">

	<display-name>webapp</display-name>

	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>

	<!-- struts2拦截器 -->
	<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>


struts.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <constant name="struts.convention.package.locators" value="action" />  
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    
    <package name="default" extends="struts-default,json-default" namespace="/">
        <!-- 这里请注意了,这里的写法跟以前的是不同的 -->
        <action name="login_*" class="com.zls.login.LoginAction" method="{1}">
            <result type="json">
                <!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 -->
                <param name="root">dataMap</param>
            </result>
        </action>
    </package>
</struts>  

LoginAction.java:

package com.zls.login;

import java.util.HashMap;
import java.util.Map;

import com.opensymphony.xwork2.ActionSupport;
import com.zls.login.interfaces.User;

public class LoginAction extends ActionSupport{
	
	private String name;
	private String password;
	
	private Map<String, Object> dataMap; 

	/**
	 * 得到前台传过来的name值
	 * @param name
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 得到前台传过来的password值
	 * @param password
	 */
	public void setPassword(String password) {
		this.password = password;
	}
	
	/**
	 * 构造方法
	 */
	public LoginAction() {
		//初始化Map对象
		dataMap = new HashMap<String, Object>();
	}

	/**
	 * 如果没有指定执行action里的哪个方法时,会默认执行此方法
	 */
	public String execute() throws Exception {
		System.out.println("come in 1!");
		return SUCCESS;
	}
	
	
	
	public Map<String, Object> getDataMap() {
		return dataMap;
	}


	/**
	 * 通过action以Struts2默认方式返回JSON数据
	 * @return
	 */
	public String checkLogin() {
		
		 // dataMap中的数据将会被Struts2转换成JSON字符串,所以这里要先清空其中的数据
		dataMap.clear();
		System.out.println("name:" + name);
		System.out.println("password:" + password);
		System.out.println("come in2 !");
		if (name.compareTo("admin") == 0 &&  password.compareTo("admin") == 0) {
			User user = new User();
			user.setGender("1");
			user.setName("admin");
			user.setPassword("admin");
			dataMap.put("user", user);
			dataMap.put("success", true);
			System.out.println("come in3 !");
		} else {
			User user = new User();
			user.setGender("0");
			user.setName("other");
			user.setPassword("other");
			dataMap.put("user", user);
			dataMap.put("success", true);
		} 
		
		return SUCCESS;
	}
	
}

User.java

package com.zls.login.interfaces;

public class User {
	private String name;		//姓名
	private String password;	//密码
	private String gender; 		//性别
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	
	
}

    好了,到这一步后台基本完成了,那么让我们写一个前台的ajax来访问他.

    首先是index.html:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
	<header>
		<nav>
			<ul>
				<li><a href="login_checkLogin">手机版</a></li>
				<li><a href="#" class="logininfo">登录</a></li>
			</ul>
		</nav>
	</header>


	<div class="main">

		<div class="login_box">
				<table>
					<tbody>
						<tr>
							<td>用户名</td>
							<td><input type="text" name="name" id="name"/></td>
						</tr>
						<tr>
							<td>密码</td>
							<td><input type="password" name="password" id="password"/></td>
						</tr>
						<tr>
							<td></td>
							<td><button class="login_btn">登录</button></td>
						</tr>
					</tbody>
				</table>
		</div>

	</div>

	<footer>@版权所有,禁止乱扔</footer>
	
	<script type="text/javascript" src="ui/js/jquery-1.10.2.min.js"></script>
	<script type="text/javascript" src="ui/js/login/login.js"></script>
	
</body>
</html>

login.js
(function() {
	var _this = {
		_unbindEvent : function() {
			$('.login_btn').unbind();
		},
		_bindEvent : function() {
			$('.login_btn').bind('click', function() {
				var name = $("#name").val();
				var password = $("#password").val();
				$.ajax({
					type : "post",
					url : "login_checkLogin",
					dataType : "json",
					data : {
						name : name,
						password : password
					},
					success : function(data) {
						$(".logininfo")[0].textContent = "退出";
						console.log(data);
					},
					error : function(XMLHttpRequest, textStatus, errorThrown) {
						console.log(errorThrown);
					}
				});
			});
		},
		_initialize : function() {
			_this._unbindEvent();
			_this._bindEvent();
		}
	};
	
	_this._initialize();
})();


    jquery-1.10.2.min.js就各位自己去下了。


    整个工程,我上传了,有兴趣的可以去下载:

    http://download.csdn.net/detail/wfwfwf128/6472193

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值