Struts2+Spring 整合成功测试案例----利用Dojo实现简单的Ajax的效果

简介:

利用Dojo实现简单的Ajax的效果 .

继续使用上两个案例的代码。
一、安装Dojo插件,如下三个步骤:
    1.导入jar包:struts2-dojo-plugin-2.1.8.1.jar ,复制到WEB-INF / lib 目录下。
    2.在使用Dojo标签的Jsp页面使用如下代码导入Dojo标签:
         <%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
    3.在需要使用Dojo标签的JSP页面加入Dojo的head标签。如下代码所示:
        <head>
           ......
           <sx:head/>
      </head>
二、定义异步表单。
         1. 改写addperson.jsp 界面
       
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
< %@taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加界面</title>
<sx:head/>
</head>
<body>
   
   <s:form action ="add.action" method="post">
     
      <s:textfield name="per.pid" />
      <s:textfield name="per.pname" />
      <s:textfield name="per.page" />
      <s:textfield name="per.paddr" />
      <s:submit method="addui"/>
      <s:submit value="List" method="listui"/>
       <sx:submit value="List persons" method="listui" targets="show"/>
      
      
   </s:form>
   <div id=" show"></div>
</body>
</html> 
         2.新增界面listperson.jsp
      
          
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
        < %@taglib prefix="s" uri="/struts-tags"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div id="allTypes" > 
  <table border='1'>
  <th>编号</th>
  <th>姓名</th>
  <th>年龄</th>
  <th>地址</th>
  <th>动作</th>
  
  <s:iterator value="lsPer" id="alltype"> 
      <tr>
      <td>
       <input type="checkbox" 
       lang="<s:property value="#alltype.id"/>" /></td>
       <td>
       <s:property value="#alltype.pname"/>
       </td>
       <td>
       <s:property value="#alltype.page"/> 
       </td>
       <td>
       <s:property value="#alltype.paddr"/> 
       </td>
       <td>
        <a href="#">编辑</a>/<a href="#">删除</a>
       </td>
       </tr>
    </s:iterator> 
    
    </table>
</div>

 
 
</body>
</html>
 
        3.改写struts.xml
     
<?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.i18n.encoding" value="UTF-8"></constant>
    <constant name="struts.objectFactory" value="spring"></constant>
   
   
     <package name="person" extends="struts-default" namespace="/">
    
          <action name="add" class="personAction" method="addui">
           <!--  <result name="input">/addperson.jsp</result> -->
             <result name="success">/success.jsp</result> 
             <result name="error">/addperson.jsp</result> 
          </action>
          
          <action name="addlist" class="personAction" method="listui">
           <result name="success">/listperson.jsp</result>
          </action>
        
        
   </package>
</struts>   
 
          4.启动Server进行测试。
    .......................
      继续Ajax的学习...................


经过几番搜索+测试,利用jquery+Json写了个实现Ajax效果实例,批量显示数据。此数据接上节内容。
  一、准备工作jar包
   1.commons-beanutils-1.8.0.jar
   2.commons-collections-3.2.1.jar
  3.commons-collections.jar
  4.ezmorph-1.0.6.jar
  5.javassist-3.11.0.GA.jar
  6.json.jar
  7.json-lib-2.4-jdk15.jar
  8.struts2-json-plugin-2.3.4.jar
.....
  二、导入Js  :jquery-1.4.4.js
     存放路径为:../WebContent/js/jquery-1.4.4.js.
 
  三、修改PersonAction.java
    
public class PersonAction extends ActionSupport {
 
 private PersonService personService;
 
  private String result;
 
 
 private Person per=new Person();
 List<Person> lsPer =new ArrayList<>();
 
 public Person getPer() {
  return per;
 }
 public void setPer(Person per) {
  this.per = per;
 }
 public PersonService getPersonService() {
  return personService;
 }
 public void setPersonService(PersonService personService) {
  this.personService = personService;
 }
 
 public String addui() throws Exception{
  
  if (0==per.getPid()||""==per.getPname()||0==per.getPage()|| ""==per.getPaddr())
  {
   return ERROR;
  }
  else
  {
  System.out.println("#########################");
  personService.InsertPer(per);
  //lsPer=personService.listPer();
  /**
  lsPer=personService.listPer();
  for (int i=0;i<=lsPer.size()-1;i++){
   System.out.println(lsPer.get(i));
  }
  **/
  return SUCCESS;
  }
 }
 
 public String listui() throws Exception{
  System.out.println("WWWWWWWWWWWWWWWWWWWWWWWWW");
  lsPer=personService.listPer();
  
  return SUCCESS;
 }
 //新增内容:
 public String listall() throws Exception{
  System.out.println("=======================");
 
  lsPer=personService.listPer(); 
  
  JSONArray jo=JSONArray.fromObject(lsPer);
  
  result=jo.toString();
    
  System.out.println(result);
 
  return SUCCESS;
 }
 public String getResult() {
  return result;
 }
 public void setResult(String result) {
  this.result = result;
 }
 /**
 public String execute() throws Exception {
    
  System.out.println("#########################");
    System.out.println(per.getPid());
    System.out.println(per.getPname());
    personService.InsertPer(per);
   
    return SUCCESS;
   
   }
 **/

 
}
 
    ......
   四、修改struts.xml
   
   
<?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.i18n.encoding" value="UTF-8"></constant>
    <constant name="struts.objectFactory" value="spring"></constant>
  
     <package name="person" extends="struts-default" namespace="/">
    
          <action name="add" class="personAction" method="addui">
           <!--  <result name="input">/addperson.jsp</result> -->
            <result name="success">/listperson.jsp</result> 
             <result name="error">/addperson.jsp</result> 
          </action>
          
          <action name="addlist" class="personAction" method="listui">
          <result name="success">/listperson.jsp</result>
          </action>
          
          
        
   </package>
   <!-- json-dafault  继承了struts-default  所以在这里只继承extends="json-default"  即可-->
   <package name="persons" extends=" json-default" namespace="/">
   
     <action  name="listAll" class="personAction" method="listall">
         <result type="json">
        <param name="root">result</param>
        </result> 
      </action>
    
    </package>     
</struts>   
       五、新增一个Jsp页面:allperson.jsp
         
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
< %@taglib prefix="s" uri="/struts-tags"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>显示界面</title>
<script type="text/javascript" src="js/jquery-1.4.4.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
   //使用 Ajax 的方式 判断
    $("#allPer").click(function(){
     
     
     var url='listAll.action';
   //获取表单值,并以json的数据形式保存到params中
     var params={
       
      };
   //使用$.post方式
     $.post(
         
      url,  //服务器要接受的url
      params,  //传递的参数
      function dadf(datad){
        
           //服务器返回后执行的函数 参数 data保存的是服务器发送到客户端的数据

   //    alert("dd====="+datad);
        var dataArray=eval("("+datad+")");    //包数据解析为json格式 
        var count=dataArray.length;
       for (var i=0;i<dataArray.length;i++){
                 $("#"+(i*5+1)).html(dataArray[i].id);
        $("#"+(i*5+2)).html(dataArray[i].pname);
        $("#"+(i*5+3)).html(dataArray[i].page);
        
        $("#"+(i*5+4)).html(dataArray[i].paddr);
       
       }
       
      },
      'json'     //数据传递的类型  json
      
     );    
    });
 
   });
</script>
</head>
<body>
       
    <input type="submit" id=" allPer" value="OK"  />
   
   <div id="show">
      <label id='lop' value=""></label>
      <table border='1'>
         <tr>
           <td>编号</td>
           <td>姓名</td>
           <td>年龄</td>
           <td>地址</td>
          
         </tr>
       
         <%
         
         for(int i=0;i<10;i++){
         %>
           <tr>
             <td id="<%=i*5+1 %>"> id</td> 
            <td id="<%=i*5+2 %>"> pname</td> 
            <td id="<%=i*5+3 %>">page </td> 
           <td id="<%=i*5+4 %>">paddr</td>
       </tr>
         <%
         }
         %>
      </table>
   
   </div>
    
 
</body>
</html>
 
 
    六、测
 
















本文转自yunlielai51CTO博客,原文链接:http://blog.51cto.com/4925054/1148415,如需转载请自行联系原作者

相关文章
|
2月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
1月前
|
前端开发
React技术栈-react使用的Ajax请求库实战案例
这篇文章介绍了在React应用中使用Axios和Fetch库进行Ajax请求的实战案例,展示了如何通过这些库发送GET和POST请求,并处理响应和错误。
34 10
React技术栈-react使用的Ajax请求库实战案例
|
1月前
|
前端开发
React技术栈-react使用的Ajax请求库用户搜索案例
这篇文章展示了一个React技术栈中使用Ajax请求库(如axios)进行用户搜索的实战案例,包括React组件的结构、状态管理以及如何通过Ajax请求获取并展示GitHub用户数据。
24 7
React技术栈-react使用的Ajax请求库用户搜索案例
|
22天前
|
JavaScript 前端开发 Java
Spring Boot+cucumber+契约测试
Spring Boot+cucumber+契约测试
12 0
Spring Boot+cucumber+契约测试
|
2月前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
36 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
2月前
|
测试技术 Java Spring
Spring 框架中的测试之道:揭秘单元测试与集成测试的双重保障,你的应用真的安全了吗?
【8月更文挑战第31天】本文以问答形式深入探讨了Spring框架中的测试策略,包括单元测试与集成测试的有效编写方法,及其对提升代码质量和可靠性的重要性。通过具体示例,展示了如何使用`@MockBean`、`@SpringBootTest`等注解来进行服务和控制器的测试,同时介绍了Spring Boot提供的测试工具,如`@DataJpaTest`,以简化数据库测试流程。合理运用这些测试策略和工具,将助力开发者构建更为稳健的软件系统。
39 0
|
2月前
|
Java Spring Maven
Struts 2遇见Spring:这个组合如何颠覆你的Web开发?
【8月更文挑战第31天】在现代Web开发中,Struts 2与Spring的结合使用能显著增强应用的模块化和可维护性。本文将介绍如何整合这两个框架,并提供代码示例。首先,在`pom.xml`中添加Struts 2和Spring的依赖,然后在`struts.xml`中配置Struts 2以识别Spring插件。接着,在Spring配置文件中定义bean,并在Struts 2的Action类中使用`@Autowired`注解进行自动注入。
30 0
|
2月前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`&lt;s:checkbox&gt;`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
67 0
|
2月前
|
前端开发 Java 测试技术
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
|
3月前
|
Java 测试技术 开发工具
使用Spring Boot和Spock进行单元测试
使用Spring Boot和Spock进行单元测试
下一篇
无影云桌面