• struts2jsonjquery ajax 操作


    struts 和 json所用jar包 

    package com.jokey.action;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import com.jokey.bean.User;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class UserAction extends ActionSupport {
    
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        
        private User user;
    
        public  List<User> getUsers() {
            return users;
        }
    
        public  void setUsers(List<User> users) {
            users = users;
        }
    
        //将会被Struts2序列化为JSON字符串的对象
        private Map<String, Object> dataMap;
        
        private  List<User> users = new ArrayList<User>();
    
        /**
         * 构造方法
         */
        public UserAction() {
            //初始化Map对象
            dataMap = new HashMap<String, Object>();
        }
    
        /**
         * 测试通过action以视图方式返回JSON数据
         * @return
         */
        public String login() {
            if(user!=null&&user.getId().equals("jokey")&&user.getPassword().equals("123")){
                dataMap.put("loginResult", "true");
            }else{
                dataMap.put("loginResult", "false");
            }
            return SUCCESS;
        };
        
        public String getList(){
            User user1 = new User();
            user1.setId("01");
            user1.setName("peter");
            User user2 = new User();
            user2.setId("02");
            user2.setName("tom");
            users.add(user1);
            users.add(user2);
            return SUCCESS;
        }
        
        public String delUser(){
            User user1 = new User();
            user1.setId("01");
            user1.setName("peter");
            User user2 = new User();
            user2.setId("02");
            user2.setName("tom");
            users.add(user1);
            users.add(user2);
            boolean flag = false;
            for (User user : users) {
                if(user.getId().equals(user.getId()));
                users.remove(user);
                flag = true;
                dataMap.put("delResult", flag);
            }
            return SUCCESS;
        }
    
        
        
        /**
         * Struts2序列化指定属性时,必须有该属性的getter方法,实际上,如果没有属性,而只有getter方法也是可以的
         * @return
         */
        public Map<String, Object> getDataMap
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
    
        <constant name="struts.enable.DynamicMethodInvocation" value="false" />
        <constant name="struts.devMode" value="true" />
    
        <package name="default" namespace="/" extends="json-default">
            <action name="login" class="com.jokey.action.UserAction" method="login">
                <result type="json">
                    <param name="root">dataMap</param>
                </result>
            </action>
            <action name="getList" class="com.jokey.action.UserAction" method="getList">
                <result type="json">
                    <param name="root">users</param>
                </result>
            </action>
            <action name="del" class="com.jokey.action.UserAction" method="delUser">
                <result type="json">
                    <param name="root">dataMap</param>
                </result>
            </action>
            
        </package>
    
    
    </struts>
    
    
    
    () {
            return dataMap;
        }
    
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    
    }
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <%@ taglib prefix="json" uri="/struts-json-tags" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        
        <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.7.1.min.js"></script>
      <script type="text/javascript" src="js/jquery.form.js"></script>
      <script type="text/javascript">
          function submitForm(){
              $.ajax({
                type: "POST",
                dataType:'json',
                data:$('#login').serialize(),//获取表单中提交内容 自动拼装参数
                //防止IE8 中文乱码
                contentType: "application/x-www-form-urlencoded; charset=utf-8",
                url: 'login.action',//提交到的action地址
                success: function(dataMap){
                 if(dataMap.loginResult=='true'){
                         alert('登陆成功');
                        location.href='list.jsp';
                 }else{
                     alert('登陆失败');
                 }
                }
             });
          }
      </script>
      
      
      </head>
      
      <body>
     
           <s:form id="login" action="" theme="simple">
               <s:textfield name="user.id"></s:textfield>
               <s:password name="user.password"></s:password>
           </s:form>
               <button onclick="submitForm()">提交</button>
      </body>
    </html>





    list.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>My JSP 'list.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.7.1.min.js"></script>
      <script>
      //文档加载后 自动请求数据
          $(document).ready(function(){
              init();
          });
      
      //初始化页面
      function init(){
          $.ajax({
              type: "POST",
              dataType:'json',
              //防止IE8 中文乱码
              contentType: "application/x-www-form-urlencoded; charset=utf-8",
              url: 'getList.action',//提交到的action地址
              success: function(users){
                  var innerHtml='';
                    for(var i=0;i<users.length;i++){
                        innerHtml+='<tr><td>'+users[i].id+'</td>+<td>'+users[i].name+'</td>+<td><a href=\"javascript:void(0);\" onclick=\"delUser('+users[i].id+')\">果断删除</a></td></tr>';
                    }
                    $('#userTable').html(innerHtml);
              }
           });
      }
      
      
          function delUser(id){
              $.ajax({
                type: "POST",
                dataType:'json',
                data:'user.id='+id,
                //防止IE8 中文乱码
                contentType: "application/x-www-form-urlencoded; charset=utf-8",
                url: 'del.action',//提交到的action地址
                success: function(dataMap){
                 if(dataMap.delResult||dataMap.delResult=='true'){
                         alert('删除成功');
                         init();
                 }else{
                     alert('删除失败');
                 }
                }
             });
              
          }
      </script>
      </head>
      
      <body>
      <table id="userTable" border="1px" rules="all">
      
      </table>
      </body>
    </html>
  • 相关阅读:
    dijkstra算法模板 -- 最短路
    0-1背包
    POJ 1456-Supermarket(贪心+并查集)
    CodeForces 556C
    CodeForces
    POJ 2253-Frogger(Floyd变形)
    POJ 1251-Jungle Roads(最小生成树)
    HDU 1846-Brave Game(巴什博弈)
    HDU 1233-还是畅通工程(经典最小生成树)
    51Nod 1649-齐头并进(最短路dijkstra)
  • 原文地址:https://www.cnblogs.com/cnjava/p/3044907.html
Copyright © 2020-2023  润新知