ajax+json应用实例

本文介绍了一个使用Struts2 JSON插件实现的增试卷模板功能案例,详细讲解了前端通过AJAX发送请求到后端进行数据校验的过程,并展示了如何配置Struts2来支持JSON数据交互。

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

准备工作:

   a: 导入包:struts2-json-plugin-2.2.1.jar

注意事项:

   a:为了保能能获取json的返回值,需要将action中使用的所有的service接口的所有get方法上添加@JSON(serialize=false)标记

-----------------------------------------------------------------------------------------------------------------

1. js 前台

 

// 完成新增试卷模板
           function    addPaperTemplateSubmit(){
          
               // 获取试卷模板名称和总分
               var templateName = $.trim($("#templateName").val());
               var totalMark = $.trim($("#totalMark").val());
              alert("totalMark="+totalMark+"===templateName="+templateName);
          
               $.ajax({
                type : "get",
                async: false,      //ajax同步
                url : "<%=path%>/admin/questionbank_ajax/checkPaperTemplate.action",
                data: "templateName="+encodeURIComponent(encodeURIComponent(templateName))+"&totalMark="+totalMark,
                dataType : "json",
                success : function(data){
                    alert("111"+data.state);
                   
                }
            });
          
          
           }

 

2. java后台

/**
     * 添加试卷模板前,判断模板相关属性要求
     *
     * @return
     */
    public String checkPaperTemplate() {

        try {
           
            // 获取模板名称和模板分数
            ServletActionContext.getRequest().setCharacterEncoding("UTF-8");
            int totalMark = Integer.parseInt(ServletActionContext.getRequest()
                    .getParameter("totalMark"));
            String templateName = java.net.URLDecoder.decode(
                    ServletActionContext.getRequest().getParameter(
                            "templateName"), "utf-8");

            // 设置检查同名模板的参数
            HashMap parameter = new HashMap();
            parameter.put("templateName", templateName);
            parameter.put("depId", "1201");
           
            System.out.println("checkPaperTemplate====================totalMark=========="+totalMark+"====" +templateName);

            // 获取同名模板名称
            int sameNameCount = paperTemplateService
                    .getSameNameCount(parameter);
            if (sameNameCount > 0) { // 包含同名的模板信息
                state = 1;
            }
            if (!isMarkEqual(totalMark)) { // 试卷模板总分和模块总分不相等
                state = 2;
            }
           
            System.out.println("state===" + state);

            return SUCCESS;
           
        } catch (Exception e) {
            e.printStackTrace();

            return ERROR;
        }

       
    }

3. xml配置文件

<package name="papertemplate_ajax" extends="json-default"
        namespace="/admin/questionbank_ajax">
        <!-- 判断添加的试卷模板是否合法 -->
        <action name="checkPaperTemplate" class="paperTemplateAction"
            method="checkPaperTemplate">
        <result type="json"></result>
        </action>
    </package>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值