JSON与Struts2的结合使用

本文详细介绍如何在Struts框架中整合JSON技术实现前后端的数据交互。从导入必需的库文件到配置核心过滤器,再到编写AJAX请求及响应处理,并提供了一个具体的实例,包括实体类、Action类和struts.xml配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、首先导入struts的必须包


2、导入struts整合JSON的必须包


3、配置核心过滤器

4、编写AJAX并在其中使用json
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib  uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>title</title>
   
          <meta http-equiv="pragma" content="no-cache">
          <meta http-equiv="cache-control" content="no-cache">
          <meta http-equiv="expires" content="0">
          <script type="text/javascript">
                   window.onload = function (){
                             //创建AJAX对象
                             var ajax;
                             try{
                                      ajax = new XMLHttpRequest();
                             }catch(e){
                                      ajax = new ActiveXObject("microsoft.xmlhttp");
                             }
                             
                             ajax.open("get","<c:url value='/json_list'/>" );
                             ajax.send(null);
                             
                             var province = document.getElementById("provinceID");
                             
                             //接收返回状态
                             ajax.onreadystatechange = function(){
                                      if(ajax.readyState==4 && ajax.status==200){
                                                var props = ajax.responseText;
                                                //将json的字符串转为对象
                                                props = eval("("+props+")");
                                                
                                                for(var i=0;i<props.length;i++){
                                                          var opt = document.createElement("option");
                                                          //使用json获取指定值
                                                          opt.setAttribute("value", props[i].id);
                                                          opt.innerHTML = props[i].provinceName;
                                                          province.appendChild(opt);
                                                }
                                      }
                             
                             }
                   }
          </script>
  </head>
 
  <body>
    <select id="provinceID">
          
    </select>
  </body>
</html>



5、编写一个实体类
public class Province {
          private int id;
          private String provinceName;


6、编写一个Action
package star.july.web;
import java.util.ArrayList;
import java.util.List;
import star.july.entity.Province;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class ProvinceAction extends ActionSupport{
                   
          public String list(){
                   List<Province> list = new ArrayList<Province>();
                   list.add(new Province(1,"张三"));
                   list.add(new Province(2,"李四"));
                   list.add(new Province(3,"王五"));
                   
                   ActionContext ac = ActionContext.getContext();
                   ac.put("list", list);
                   
                   return SUCCESS;
          }
}

7、配置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>
          <!-- 继承一个struts整合jsonjson-defalut包,其已经继承了默认的struts-defalut -->
          <package name="default" extends="json-default" namespace="/">
                   <action name="json_*" class="star.july.web.ProvinceAction" method="{1}">
                             <!-- 返回视图的类型必须是:json -->
                             <result type="json">
                                      <!-- 值必须是root,转换Action类中放入映射栈的对象,一次只能转换一个 -->
                                      <param name="root">#list</param>
                             </result>
                   </action>
          </package>
</struts>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值