Web 基础之 SSH 框架访问网页返回 json 数据简单实现的整理
目录
Web 基础之 SSH 框架访问网页返回 json 数据简单实现的整理
一、简单介绍
Web 开发的一些知识整理,方便后期遇到类似的问题,能够及时查阅使用。
本节介绍,Web 开发 中 使用 SSH 框架,简单实现访问网页返回 json 数据的方法,如果有不足之处,欢迎指出,或者你有更好的方法,欢迎留言。
二、相关环境
1、Windows 10
2、Eclipse Version: Oxygen.3a Release (4.7.3a) Build id: 20180405-1200
3、MySQL 8.0 + MySQL Workbench 8.0 CE
4、Tomcat 8.5
5、Java version 1.8.0_181
三、注意事项
1、引入 json 相关 jar的时候,可能 SSH 中已经存在某些包,可以不导入
可以到这里下载 json jar:Java开发json数据的jar涉及的相关包Java_json_lib_2.4.zip-Java文档类资源-CSDN下载
2、SSH 中使用 json 包的时候,注意 SSH 中要有 struts2-json-plugin-x.x.x.jar 包
3、实现访问网页返回 json 数据时,关键是 Map<String,Object> map; 注意添加其 getter 和 setter 属性
四、具体实现步骤
该案例基于搭建好的 SSH 框架,SSH 框架可以参考:
Web 框架之 SSH 框架的简单搭建的简单整理(基于Eclipse)_仙魁XAN-CSDN博客
1、在搭好的 SSH 框架中,添加 json 相关包
这里添加 struts2-json-plugin-2.5.16.jar ,commons-beanutils-1.8.0.jar,commons-collections-3.2.1.jar,ezmorph-1.0.6.jar,json-lib-2.4-jdk15.jar
2、添加一个 TestJsonAction,实现获取数据库所有用户信息,然后封装成 json 数据
3、对应实现 UserService 和 UserDao 中的获取所有用户信息的方法
4、配置 struts 中 TestJsonAction 数据
5、配置 spring applicationContext.xml,添加 testJsonAction 的 bean
6、运行 工程
7、浏览器输入对应的网址,网页就返回 json 数据了
五、关键代码
有些是,对应脚本添加的代码
1、TestJsonAction
package com.xan.web;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
import com.xan.domain.User;
import com.xan.service.UserService;
// 测试 json 数据,获取 所有用户数据并且封装成 json 数据
public class TestJsonAction extends ActionSupport {
// 封装成 json 数据关键
private Map<String, Object> map;
private UserService userService;
public Map<String, Object> getMap() {
return map;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public String jsonMessage() {
map = new HashMap<String, Object>();
// 获取 所有 User 并且封装成 json 数据
List<User> list = userService.findAllUser();
map.put("success", true);
map.put("message", list);
return "jsonData";
}
}
2、UserService 添加的代码
public List<User> findAllUser() {
// TODO Auto-generated method stub
return userDao.findAllUser();
}
3、UserDao 添加的代码
public List<User> findAllUser() {
Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
// sql SQLQuery 方法
/*String sql = "select * from user";
SQLQuery sqlQuery = session.createSQLQuery(sql).addEntity(User.class);
List<User> users = sqlQuery.list();
*/
// hql Query
String hql = "from com.xan.domain.User";
Query createQuery = session.createQuery(hql);
List<User> users = createQuery.list();
return users;
}
4、struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- 让spring帮我们创建action -->
<constant name="struts.objectFactory" value="spring"></constant>
<package name="MySSH" namespace="/" extends="struts-default,json-default">
<global-allowed-methods>regex:.*</global-allowed-methods>
<action name="UserAction_*" class="com.xan.web.UserAction" method="{1}">
<result name="login">/login.jsp</result>
<result name="toIndex">/index.html</result>
</action>
<action name="testGetJson" class="com.xan.web.TestJsonAction" method="jsonMessage">
<result name="jsonData" type="json">
<param name="root">map</param>
</result>
</action>
</package>
</struts>
5、applicationContext.xml 中添加的代码
<bean name="testJsonAction" class="com.xan.web.TestJsonAction" scope="prototype">
<property name="userService" ref="userService"></property>
</bean>