Struts2整合jQuery和JSON进行简单的异步数据交换入门教程

最近做项目的时候,需要用到JSON和jQuery进行异步数据交换

在网上查了好久,搞了一天多才写出来,所以拿出来和大家分享一下

好了,废话到此为止


1. 搭建Struts2运行环境

引入Struts2所需的jar包,另外还要引入一个JSON插件包:struts-2.3.4.1/lib/(前面是位置)struts2-json-plugin-2.3.4.1.jar


2. 编写web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">
	<display-name></display-name>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

	<!-- Struts2核心Filter -->
	<filter>
		<filter-name>struts</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>

3. 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.devMode" value="true"></constant>
	<!-- 当配置文件修改时,自动重新加载该配置文件 -->
	<constant name="struts.configuration.xml.reload" value="true"></constant>
	
	<!-- Struts2使用JSON和jQuery进行数据交互 -->
	<!--
             这里要注意的是:1. package必须继承json-default 2. result的类型必须是json
        -->
        <package name="json" namespace="/json" extends="json-default">
		<action name="JsonAction" class="org.action.JsonAction">
			<result type="json"></result>
		</action>
	</package>
	
</struts>

4. Person.java
public class Person{
      // 姓名
      private String name;
      // 密码
      private String password; 
      
      //getter/setter略
}
5. JsonAction.java
package org.action;

import java.util.ArrayList;
import java.util.List;
import org.model.Person;

import com.opensymphony.xwork2.ActionSupport;

public class JsonAction extends ActionSupport
{
	//Person对象
	private Person person;
	//爱好
	private String hobby;
	//集合测试
	private List<String> dragons = new ArrayList<String>();
	
	@Override
	public String execute() throws Exception
	{
		//为Action的属性赋值,方便在JSP页面获取值
		this.hobby = "行侠仗义";
		this.dragons.add("jQuery");
		this.dragons.add("Json");
		this.person.setName("萧峰");
		this.person.setPassword("123");
		
		System.out.println("执行execute()方法");
		
		return super.execute();
	}
        //getter/setter略
}
6. index.jsp(记得引入jQuery库)
        
        <!-- import jQuery library -->
	<script type="text/javascript" src="jQuery/jquery-1.9.0.js"></script>
	
	<script type="text/javascript">
		$(document).ready(function(e) {
			$("button#btn").click(function(e) {
                                 //通过data可以直接访问Action中的属性
                                 $.post("json/JsonAction", function(data){
					alert("姓名:" + data.person.name +
						"\n密码:" + data.person.password +
						"\n爱好:" + data.hobby +
						"\n集合:" + data.dragons
					);
				});
			});
		});
	</script>
  
  <body>
    <button type="button" id="btn">JSON</button>
  </body>

这个程序不是很难,解释我都写在代码里了,这只是初级的使用方法,不过可以满足进行简单的数据交换了

我的理解是:使用JSON进行数据交换其实就是读取Action类里可序列化的属性(这个属性必须要有getter方法)

呵呵,就这样了

如果有错的,请大家放心指正,共同进步。


更详细的内容可以查看下面链接

Struts2配置JSON的更多细节

JSON的简介



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为你提供一个简单Struts2和Hibernate框架整合实现注册和登录功能的示例。 首先,你需要创建一个基于Struts2和Hibernate的Web应用程序。接下来,你可以按照以下步骤来实现注册和登录功能: 1. 创建一个User实体类,包括id、username和password属性以及相应的getter和setter方法。 2. 创建一个UserDao类,实现用户信息的增、删、改、查等操作。在这个类中,你需要使用Hibernate提供的API来访问数据库。 3. 创建一个UserAction类,处理用户的注册和登录请求。在这个类中,你需要使用Struts2提供的API来接收用户提交的表单数据,并将其传递给UserDao类进行处理。 4. 创建一个注册页面和一个登录页面,让用户输入必要的信息。 5. 配置Struts2和Hibernate框架,确保它们能够正确地协同工作。 下面是一个简单的注册和登录功能的示例代码: User实体类: ``` public class User { private Integer id; private String username; private String password; // getter and setter methods public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } 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; } } ``` UserDao类: ``` public class UserDao { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public void save(User user) { Session session = sessionFactory.getCurrentSession(); session.save(user); } public User findByUsername(String username) { Session session = sessionFactory.getCurrentSession(); Query query = session.createQuery("from User where username = :username"); query.setParameter("username", username); return (User) query.uniqueResult(); } } ``` UserAction类: ``` public class UserAction extends ActionSupport { private User user; private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String register() { userDao.save(user); return SUCCESS; } public String login() { User u = userDao.findByUsername(user.getUsername()); if (u != null && u.getPassword().equals(user.getPassword())) { return SUCCESS; } else { return ERROR; } } } ``` 注册页面: ``` <s:form action="register"> <s:textfield name="user.username" label="Username" /> <s:password name="user.password" label="Password" /> <s:submit value="Register" /> </s:form> ``` 登录页面: ``` <s:form action="login"> <s:textfield name="user.username" label="Username" /> <s:password name="user.password" label="Password" /> <s:submit value="Login" /> </s:form> ``` 以上代码仅供参考,你可以根据自己的需求进行修改和完善。同时,确保你已经正确地配置了Struts2和Hibernate框架,以便它们能够协同工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值