struts+ajax+jquery:實現非同步新增資料

來源:互聯網
上載者:User

標籤:sim   apach   string   word   ase   jsonp   let   value   query   

很久未有更新,最近因為團隊其它事耽誤沒有繼續學習,但心中十分忐忑不安,抽空把自己薄弱的點拿來再鞏固一下!

本身非同步重新整理用處非常多,SSH架構對我來講,已無難度,但結合ajax處理一些增刪查改分頁等,就覺得無奈,還是把基礎抓起來先

先看一下本次功能的:

1、用到的jar包

:http://pan.baidu.com/s/1hspDeoW

2、index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP ‘index.jsp‘ starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script type="text/javascript" src="js/jquery-1.8.3.min.js"></script><script type="text/javascript">//提交結果,執行ajaxfunction btn(){var $btn = $("input.btn");//擷取按扭元素//給按扭綁定點擊事件$btn.bind("click",function(){$.ajax({type:"post",url:"jsonAction.action",//需要用來處理ajax請求的action,excuteAjax為處理的方法名,JsonAction為action名data:{name:$("input[name=name]").val(),age:$("input[name=age]").val(),position:$("input[name=position]").val()//這裡不用加“,”不然會報錯},dataType:"Json",//設定返回的資料類型success:function(data){alert(data);var d = eval("("+data+")");//將資料轉換成json類型,可以把data用alert()輸出來看看是什麼樣的結構,得到的是一個形如{"key":"value","key1":"value1"}的資料類型,然後取捨出來//來一條增加一條tr 3列tdvar tr_begin = "<tr>";var tr_end = "</tr>";var td_c1="<td>"+d.name+"</td>";var td_c2="<td>"+d.age+"</td>";var td_c3="<td>"+d.position+"</td>";var text = tr_begin+td_c1+td_c2+td_c3+tr_end;$("#view").append(text);},error:function(){alert("系統異常,請稍後再試!");}//這裡不用加","});});}//頁面載入完成,觸發綁定事件$(document).ready(function(){btn();//點擊提交,執行ajax});</script>  </head>    <body>    <div id="div_json"><h5>錄入資料</h5><br/><form action="#" method="post"><label for="name">姓名:</label><input type="text" name="name" /><label for="age">年齡:</label><input type="text" name="age" /><label for="position">職務:</label><input type="text" name="position" /><input type="button" class="btn" value="提交結果" /></form><br/><h5>顯示結果</h5><br/><!-- <ul><li>姓名:<span id="s_name">暫無資料</span></li><li class="li_layout">年齡:<span id="s_age">暫無資料</span></li><li class="li_layout">職務:<span id="s_position">暫無資料</span></li></ul> --><table id="view"><tr><td>姓名</td><td>年紀</td><td>職務</td></tr></table></div><div id="authorgraph"><img  src=""></div>  </body></html>

  

3、後端action

package action;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import net.sf.json.JSONObject;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.json.JSONUtil;import sun.org.mozilla.javascript.internal.json.JsonParser;import com.opensymphony.xwork2.ActionSupport;public class JsonAction extends ActionSupport implements ServletRequestAware{private static final long serialVersionUID = 1L;private HttpServletRequest request;private String result;public String getResult() {return result;}public void setResult(String result) {this.result = result;}@Overridepublic void setServletRequest(HttpServletRequest arg0) {this.request = arg0;}/** * 處理ajax請求 */public String executeAjax(){try {//擷取資料String name = request.getParameter("name");int age = Integer.parseInt(request.getParameter("age"));String position = request.getParameter("position");System.out.println("name=="+name+"age=="+age+"position=="+position);//將資料存放區在map裡,再轉換成json類型資料,也可以自己手動構造json類型資料Map<String,Object> map = new HashMap<String, Object>();map.put("name", name);map.put("age", age);map.put("position", position);JSONObject json =JSONObject.fromObject(map);//將map對象轉換成json類型資料result = json.toString();//給result賦值,傳遞給頁面System.out.println("result==="+result);} catch (Exception e) {e.printStackTrace();}return SUCCESS;}}

  4、struts.xml配置

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><constant name="struts.i18n.encoding" value="UTF-8"></constant><package name="simpleton" extends="struts-default,json-default"><action name="jsonAction" method="executeAjax" class="action.JsonAction"><!-- 返回json類型資料 --><result type="json"><param name="root">result</param><!-- result是action中設定的變數名,也是頁面需要返回的資料,該變數必須有setter和getter方法 --></result></action></package></struts>    

  

總結:過程中我遇到jar包缺少的問題,關於lang包的版本問題,我放了2個,沒有衝突,滿足了要求。

java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

 

struts+ajax+jquery:實現非同步新增資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.