`

struts2+jquery +json 中遇见问题总结

 
阅读更多

1、最近使用  struts2+jquery +json 来实现无刷新的效果

,但遇见不少小问题;

1、页面

  <div class="index_right_2" >
      <div  style="float:right">
        <input class="index_right_2_1"  type="button" name="add" id="add" value="新增"/>
        <input class="index_right_2_1"  type="button" name="update" id="update" value="修改"/>
        <input class="index_right_2_1"  type="button" name="delete" id="delete" value="删除"/>
      </div>
   </div>
  
   <div class="index_right_3">
     <table id="table2" width="100%" border="0px" cellspacing="2px" cellpadding="0px" style="table-layout:fixed;">
      
      <tr class="table_one_title">
        <th style="width:5%">选择</th>
        <th style="width:5%">序号</th>
        <th style="width:20%">编码</th>
        <th style="width:30%">名称</th>
        <th>备注</th>
      </tr>
     
      <s:iterator value="list"  status="st">
      <tr class="table_one_content" id="showTr" >
         <td>
           <input style="width:100%;height:23px"  id="checkbox" name="checkbox" type="checkbox" value="<s:property value="unitId" />" />
       </td>
       <td>
           <input style="width:100%;height:23px"  id="indexNum" name="indexNum" type="text" value="<s:property value="num" />" />
       </td>
       <td>
           <input style="width:100%;height:23px"  id="vCode" name="vCode" type="text" value="<s:property value="vCode" />" />
       </td>
       <td>
           <input style="width:100%;height:23px"  id="vName" name="vName" type="text" value="<s:property value="vName" />" />
       </td>
       <td>
           <input style="width:100%;height:23px" id="sMemo" name="sMemo" type="text" value="<s:property value="sMemo" />" />
       </td>
      </tr>
      </s:iterator>
      
     </table>
  
   </div>
   </form>
   </div>
  
   <div id="unitedit" class="index_right_unitedit_middle" style="display:none">
    <form id="editform" name="editform" >
      <div class="index_right_unitedit_input">
           <input type="hidden" id="edit_unitId" name="baseVo.unitId" value="" maxlength="16" size="20" >
        <label>编码:</label><input type="text" id="edit_vCode" name="baseVo.vCode" value="" maxlength="16" size="20">&nbsp;&nbsp;&nbsp;
        <label>名称:</label><input type="text" id="edit_vName" name="baseVo.vName" value="" maxlength="50" size="39">
        </div> 

        <div class="index_right_unitedit_input">
        <label>备注:</label><textarea rows="3" cols="75" id="edit_sMemo"  name="baseVo.sMemo"></textarea>
       </div>
       
        <div class="index_right_unitedit_input" style="text-align:center">
          <input class="index_right_2_1"  type="button" name="save" id="save" value="保存"/>
             <input class="index_right_2_1"  type="reset" name="reset" id="reset" value="重置"/>
             <input class="index_right_2_1"  type="button" name="editdel" id="editdel" value="取消"/>
        <div>
      </form> 
   </div>

 

2、jq代码

 $('#update').click(function(){//修改
        var aa="";
        var iNum=-1;
        var unitId = "";
     $("input[name='checkbox']:checkbox:checked").each(function(index){//遍历table打钩的信息
      iNum = index; //只有一条数据时,则为0,2条就是1
      if(index==0){
       unitId=$(this).val(); //获取选中的那一条数据的ID,不清楚怎么获取选中的那一行的所有数据
      }
     });
     
     if(iNum==-1){ //我上面定义为-1,如果没有打钩 则执行这条
          alert("请选择一条数据进行修改");
       return false;
     }else if(iNum>0){  //  大于0 则 选择了多条
      alert("只能选择一条数据进行修改");
       return false;
     }else{
        $.ajax({
         url:'unitupdate',
              dataType:'json',
              type:'post',
              beforeSend:function(){"这里可以打印一些信息,增加用户体验度"},
              data:{
                  'unitId':unitId
             },
             success:function(data){              

             var infoArray = eval("("+data+")");//如果后台没有进行json的疯狂 直接返回pojo对象,这里可以不需要进行转化
              // alert(infoArray["VName"]);  //这种方式与下面的 .都是可以获取值  
               $('#edit_unitId').val(infoArray.unitId);
               $('#edit_vCode').val(infoArray.VCode);
               $('#edit_vName').val(infoArray.VName);
               $('#edit_sMemo').val(infoArray.SMemo);
               document.getElementById("unitedit").style.display="";
              document.getElementById("unitsearch").style.display="none";

       //页面是二部分,我用div来控制显示那部分
             }
             
        });
     }
    });

 

 

3、struts.xml

<package name="unitjson" extends="json-default">
   <action name="unitupdate" class="com.dms.base.strust.IndexLeftUnitAction" method="unitupdate">
         <result type="json">
          <param name="root">result</param>
         </result>
        </action>
 </package>

4、action 
 /**
  * 功能:公司修改传值功能
  * 编写时间:2013-07-03
  * @return
  */
 public String unitupdate(){
  System.out.println("22==="+unitId);;
  BaseVO baseVo = uBiz.findUnit(unitId);
  //转化文 json格式
  JSONObject json = JSONObject.fromObject(baseVo);
  result = json.toString();
  //this.setResult(jsonArray.toString());
  System.out.println(result);
  return SUCCESS;
 }
 

5、pojo   set,get省略


public class BaseVO {
 
 private String unitId = "";// 单位表 bd_unit
 private String vCode = "";//编码
 private String vName = "";//名称
 private String vStatus = "";//状态  1 有效  0 无效
 private String sMemo = "";//备注
 
 private String deptId = "";//bd_dept  部门表

 private String postId = "";//BD_POST  职位表
 
 private String userId = "";//bd_user_info  操作员表
 
 private String empId = "";//
 private String vCarNum = "";//卡号
 private String vSex = "";// 0  男   1 女
 private String vCarId = "";//
 private String vInDate = "";//入厂日期
 private String swSate = "";//0  离职  1 在职    是否在职
 
 private int num = 0;
 

 

6、上面都是基本的配置信息,下面所说的就是遇见的问题;

6.1、在控制台:

{"VInDate":"","VCarNum":"","empId":"","VStatus":"",

"postId":"","SMemo":"","VName":"美化","num":0,"VCarId":"","VCode":"002","vsex":"",

"userId":"","swSate":"","deptId":"","unitId":"C0002"}

 

可以打印出 封装的json数据;

页面使用 下面2种方式均可以获取到值;

    var infoArray = eval("("+data+")");

      var name= infoArray["VName"]);  

      var name2 = infoArray.VName);
不知道大家是否注意到  pojo里面定义的字段与json封装的字段名有部分不一样

 

还有一种方式 就是  后台直接  返回pojo 对象,不需要json那个封装方法;

 

 

6.2、包也要注意:

 

当我使用 JSONObject json = JSONObject.fromObject(baseVo);

时,从前端一跳到这个action执行这条语句就没反应,控制台没有错误信息

 

弄了很多才知道缺少ezmorph-1.0.6.jar、commons-httpclient-3.1.jar等包产生的;

 

 

 

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    Struts2+jQuery(不用JSON)实现局部刷新

    Struts2和jQuery是两种非常流行的开源技术,它们在Web开发中有着广泛的应用。Struts2作为MVC框架,主要用于处理后端业务逻辑,而jQuery则是一个强大的JavaScript库,简化了前端DOM操作、事件处理以及AJAX交互。在这...

    Struts2 + jQuery+JSON 实现ajax

    3. **配置问题**:检查Struts2的配置文件(如struts.xml)中的配置是否正确,特别是关于JSON插件的部分。 #### 三、总结 通过以上步骤,我们可以利用Struts2框架结合jQuery与JSON轻松地实现Ajax功能。需要注意的是...

    Struts2+Jquery+JSON 应用例子

    Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON

    struts2+spring+hibernate+jquery+json

    Struts2、Spring、Hibernate、jQuery 和 JSON 是五个在IT行业中极为重要的技术组件,它们各自在Web应用开发中扮演着不同的角色。这篇文章将详细介绍这些技术的整合使用以及它们的功能。 首先,Struts2 是一个基于 ...

    struts2+jquery+json+ajax例子

    Struts2、jQuery、JSON和Ajax是Web开发中常见的技术栈,它们共同为构建动态、交互式的用户界面提供了强大的支持。下面将详细解释这些技术及其在登录示例中的应用。 Struts2是一个基于MVC(Model-View-Controller)...

    一个简单的struts2+json+jquery 交互的例子

    Struts2、JSON和jQuery是Web开发中常用的三个技术,它们在构建动态、交互式的Web应用程序时发挥着关键作用。这个例子将展示如何整合这三个工具,实现前后端的数据交换。 首先,Struts2是一个强大的MVC(Model-View-...

    struts2+json

    在这个例子中,所有AjaxAction的属性都会被包含在返回的JSON中。 在Action类中,可能有一个方法处理AJAX请求,如下: ```java public class AjaxAction { private String message; public String execute() { /...

    struts2+jquery+json

    Struts2、jQuery和JSON是Web开发中的三个关键技术,它们在构建动态、交互式的Web应用程序时发挥着重要作用。下面将分别对这三个技术进行详细解释,并探讨它们如何协同工作。 Struts2是一个基于MVC(Model-View-...

    Struts2+JSON+JQuery实现简单的验证

    Struts2、JSON和JQuery是Web开发中的三个关键技术,它们常常被结合使用来构建高效、动态的用户界面。在本教程中,我们将探讨如何利用这些技术实现一个简单的验证功能。 首先,Struts2是一个基于MVC(Model-View-...

    struts2+jQuery+json实现AJAX.zip

    struts2+jQuery+json实现AJAX.zip

    struts2+ajax+jquery

    在这个"struts2+ajax+jquery"的主题中,我们将深入探讨如何利用Struts2、jQuery和Ajax技术实现Web页面的异步交互。 首先,Struts2作为MVC框架,它的核心是Action,它负责处理用户的请求,并通过配置的Result返回...

    struts2+jquery+json 小例子

    博客链接中提到的内容可能详细解释了如何配置Struts2的Action、Result以及如何在JSP页面中使用jQuery与服务器进行交互,同时展示了如何处理和返回JSON数据。这个小例子可以帮助初学者理解这三者如何协同工作,提升...

    json+jquery+struts2+hibernate+spring 实现的小型bbs系统,这个提供包

    json+jquery+struts2+hibernate+spring 实现的小型bbs系统,这个提供包 ,很不错的下载后,好好徐希一下吧

    结合struts2.3.4+jQuery+mysql+json

    结合struts2.3.4+jQuery+mysql+json开发的一个小例子。

    Struts2+Json+Android简单实现

    总结来说,“Struts2+Json+Android简单实现”是一个典型的前后端交互示例,展示了如何利用Struts2作为服务端接口,通过JSON进行数据交换,最后在Android客户端进行数据展示和用户交互。理解并掌握这种技术栈对于构建...

    Struts2+JQuery+Json实例

    2. **获取单个值**:在JSON中,数据通常以键值对的形式存在。例如,`{"name": "John"}`表示一个对象,我们可以使用`jsonObject.name`来获取"John"这个值。在Struts2与JQuery结合的场景下,Action类可以接收并返回...

    ExtJs + Struts2 + JSON 程序总结

    总结来说,ExtJs + Struts2 + JSON 的组合提供了一种高效、灵活的方法来构建富客户端Web应用。通过Struts2处理后端逻辑并返回JSON数据,EXTJS能够动态地更新页面,呈现复杂的数据结构,从而提高用户体验。这种技术栈...

    Struts2+Jquery+Ajax

    Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,用于构建可维护性高、结构...在实际开发过程中,还需要关注安全问题,如Struts2的安全漏洞,确保应用的稳定性和安全性。

    struts2+jQuery+json 实例

    Struts2、jQuery和JSON是Web开发中的三个关键组件,它们共同构成了高效、动态和交互式的用户界面。这里我们将深入探讨这三个技术,并结合实例来理解它们如何协同工作。 首先,Struts2是一个基于MVC(Model-View-...

Global site tag (gtag.js) - Google Analytics