`

jquery+struts2+json 入门例子

阅读更多
http://hzylyl.blog.163.com/blog/static/33097164200942433016288/


struts2中自带了struts2-json-plugin-2.1.8.1.jar

最近我接手一个J2EE项目,我是项目中期才进去,进去才发现这个问题,其界面显示和提交全部用jquery+strut2+json来实现的,其中我只熟悉struts2,那两都没用过,不过为了能够完成任务,只能从头学习了.在网上找了好多例子,可是感觉都已经是老版本的啦,新的写法已经有所不同,所以老是达不到想要的效果,不过经常几天的努力终于完成了第一个例子.该例子只用了一个regist.jsp,我们通过数据通过json方式提交,并返回数据回显到界面上.


开发环境:MyEclipse 6.0

jars :     commons-logging-1.0.4.jar

             freemarker-2.3.13.jar

             ognl-2.6.11.jar

             struts2-core-2.1.6.jar

             xwork-2.1.2.jar

            commons-fileupload-1.2.1.jar

json:     jsonplugin-0.33.jar

jquery:  jquery-1.3.1.js

把上面所列的jar放到lib文件夹下,在WebRoot下面新建一个js文件夹,把jquery-1.3.1.js复制其下面.


下面开始例子:

1.首先我新建一个名为 JSJWeb 的 Web Project

2.修改web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>Struts 2.0 Hello World</display-name>
    <filter>
        <filter-name>struts2</filter-name>       
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>


3.在src下面添加一个名叫struts.xml,内容如下:

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <include file="struts-default.xml"/>
    <package name="tutorial" extends="struts-default">
        <action name="personAction" class="tutorial.action.PersonAction">
            <result>/regist.jsp</result>
        </action>
    </package>

    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
   
    <package name="personjson" extends="json-default">
        <action name="personAjaxAction" class="tutorial.action.PersonAction">
            <result type="json"/>               
        </action>
    </package>

</struts>

4.在src中的tutorial.entity包下新建Person 实体类

package tutorial.entity;

public class Person {

    private String authorid;
    private String authorname;
    public String getAuthorid() {
        return authorid;
    }
    public void setAuthorid(String authorid) {
        this.authorid = authorid;
    }
    public String getAuthorname() {
        return authorname;
    }
    public void setAuthorname(String authorname) {
        this.authorname = authorname;
    }
}

5. 在src中的tutorial.action包下新建PersonAction Action类

package tutorial.action;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;
import tutorial.entity.Person;
import com.opensymphony.xwork2.ActionSupport;

public class PersonAction extends ActionSupport implements ServletRequestAware {
   
    private static final long serialVersionUID = 4787323253923443929L;

    private HttpServletRequest request;
   
    private Person person;


    @Override
    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
    }

    public String ShowPersonInfo()
    {
        person = new Person();
        person.setAuthorid(request.getParameter("authorid"));
        person.setAuthorname(request.getParameter("authorname"));
        return SUCCESS;
    }
   
    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }
   
}

6.在WebRoot下面添加一个名为regist.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Regist.jsp</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">
    <script type="text/javascript" src="<%=basePath %>js/jquery-1.3.1.js"></script>
  </head>
  <script type="text/javascript">
  function showPersonInfo()
  {
      var authorid = $("#authorid").val();
      var authorname=$("#authorname").val();
    $.post("personAjaxAction!ShowPersonInfo.action",{authorid:authorid,authorname:authorname,user:user},callback,"json");

//在这里我们可以看到提交数据是authorid:authorid,authorname:authorname这样来,而且我们后台是通过request来获

//取,这样不管是阅读还是写起都很麻烦,也想过是否可以这个person.authorid:authorid。想法是不错,可惜不行。

//以前以为没有办法实现像struts2那样person.authorid。最近一个项目,又重新用到这个。发现原来在这里也可以这样写。//只是在person.authorid加双引号。即"person.authorid":authorid,而且在action中也没有必须实现ServletRequestAware。

//还不用写person.setAuthorid(request.getParameter("authorid"));这种语句。直接就是定义person,然后再有person的set//和get的方法就可以啦。与struts2表单提交是一样的。

  }

  function callback(data)
  {
      var rs = data.person
     var html = "";
      html+="<table><tr><td>用户编号:</td><td>"+rs.authorid+"</td></tr><tr><td>用户名称:</td>     <td>"+rs.authorname+"</td></tr>";
    $("#showPersonInfo").html(html);
  }
  </script>
  <body>
    <form  name="eform" id="eform" method="post" onsubmit="return false;">
    用户编号:<input type="text" id="authorid" name="person.authorid"/><br>
    用户名称:<input type="text" id="authorname" name="person.authorname"/><br>
    <input type="button" value="submit" name="submit" onclick="showPersonInfo();"/>
    </form>
    <div id="showPersonInfo"></div>
 
  </body>
</html>


以上就是全部所要文件.

现在该是看看效果的时候了,http://localhost:8080/SSH/regist.jsp打开该链接就可以看到效果啦!

如果那里出错请提出来,请见谅,呵呵,谢谢!

本人表达有些问题,随便看看就好.

分享到:
评论

相关推荐

    Struts2_jquery_json1.0.zip_Struts2 heloword_struts2_struts2 jque

    本实例"Struts2_jquery_json1.0.zip"显然演示了如何在Struts2框架中利用jQuery和JSON进行数据交换。Struts2的JSON插件允许我们轻松地将Java对象转换为JSON格式,以便在客户端使用JavaScript处理。jQuery则负责在前端...

    Struts2入门教程。包括jquery集成等。入门必看

    ### Struts2入门教程知识点概览 #### 一、Struts2简介 - **起源与发展**:Struts2并非新生事物,而是建立在Struts1和WebWork基础上的一个Web应用框架。它融合了两者的优势,提供了更为强大的功能支持。 - **设计...

    struts2入门教程

    ### Struts2入门教程知识点概览 #### 一、Struts2简介 - **起源与发展**:Struts2并非一个全新的框架,而是基于Struts1和WebWork的优点结合而成的一个框架。它继承了Struts1的一些特性,同时吸收了WebWork的核心...

    struts2系列教程

    #### 二、Struts2入门 - **环境搭建**:包括开发工具的选择(如Eclipse)、JDK版本、Tomcat服务器等。 - **基本配置**:设置`struts.xml`配置文件,定义Action、结果页面等。 - **Hello World示例**:通过简单的示例...

    Ajax入门实例结合struts2

    这将告诉Struts2返回一个JSON对象,其中`available`字段对应于`checkUsernameAvailable`方法的返回值。 在服务器端,`checkUsernameAvailable`方法可以连接到数据库(例如使用JDBC)来查询用户名是否已存在。这里...

    struts2-easyui.

    在"struts2-easyui"的例子中,我们看到的是一个基础的快速入门教程,它演示了如何将这两个技术整合在一起,实现数据的增删改查功能。下面将详细解释这个组合的应用场景、工作原理以及相关的知识点。 1. **Struts2...

    研磨Struts2

    ### 知识点一:Struts2入门(MVC HelloWorld) #### 1.1 Struts2简介 Struts2是一个开源的Web应用框架,继承了Struts1的优点,并且在此基础上进行了很多改进,使得它更加灵活和强大。Struts2采用MVC(Model-View-...

    struts2.0资料

    - **插件机制**:Struts2有丰富的插件支持,如JSON、Ajax、PDF等,方便开发者快速实现特定功能。 **3. 例子解析** - **Hello World示例**:创建一个简单的Action,返回一个字符串,然后在struts.xml中配置该Action...

    最简单的dwr 例子

    10. **集成其他框架**: DWR可以很好地与其他前端框架(如jQuery、AngularJS等)或后端框架(如Spring、Struts等)结合使用,增强应用的功能和用户体验。 通过这个“最简单的dwr例子”,开发者通常会学习如何设置DWR...

    JAVA上百实例源码以及开源项目源代码

    EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...

Global site tag (gtag.js) - Google Analytics