struts2.1.8 +dojo 的ajax方式

首先,我们先创建一个简单的用例,在这个用例中,将在屏幕上显示一个用户列表,点击列表中的userid时,列表的下方将显示用户的详细信息,显示用户详细信息的这个步骤我们将使用Ajax。

本次实例使用myeclipse8.5,并加载struts2和dojo(struts2-dojo-plugin-2.1.8.1.jar)支持。

一、修改web.xml

    增加过滤器:

  <filter-mapping>
    
<filter-name>struts2</filter-name>
    
<url-pattern>/*</url-pattern>
  
</filter-mapping>

 

二、修改struts.xml

    增加如下包

     <package name="ajaxdemo" extends="struts-default">
        
<action name="UserListingAction" class="ajaxdemo.action.UserListingAction">
            
<result>/userlisting.jsp</result>
        
</action>
        
<action name="UserDetailAction" class="ajaxdemo.action.UserDetailAction">
            
<result>/userdetail.jsp</result>
        
</action>
    
</package> 

 

三、JSP页面:显示用户列表 userlisting.jsp

 

  1. <%@ taglib prefix="s" uri="/struts-tags"%>     
  2. <%@ taglib prefix="sx" uri="/struts-dojo-tags"%>    
  3. <html>   
  4.    <head>     
  5.         <title>It 's MyTest!</title>     
  6.         <sx:head />   
  7.     </head>     
  8.   <mce:script type="text/javascript"><!--   
  9.     function show_user_details(id) {   
  10.       document.frm_user.userid.value = id;   
  11.       dojo.event.topic.publish("show_detail");   
  12.     }   
  13.      
  14. // --></mce:script>   
  15.   <body>   
  16. hello!   
  17.     <s:form id="frm_user" name="frm_user">   
  18.       <h1>User Listing</h1>   
  19.       <s:if test="userList.size > 0">   
  20.         <table border="1">   
  21.           <s:iterator value="userList">   
  22.             <tr>   
  23.               <td>   
  24.                 <s:a href="#" mce_href="#" οnclick="javascript:show_user_details('%{id}');return false;"><s:property value="id" /></s:a>   
  25.               </td>   
  26.               <td>   
  27.                 <s:property value="name" />   
  28.               </td>   
  29.             </tr>   
  30.           </s:iterator>   
  31.         </table>   
  32.       </s:if>    
  33.       <s:hidden name="userid"/>   
  34.       <s:url id="d_url" action="UserDetailAction" />   
  35.       <sx:div  id="user_details" href="%{d_url}" mce_href="%{d_url}" theme="ajax" listenTopics="show_detail" formId="frm_user" >   
  36.       </sx:div>   
  37.     </s:form>   
  38.   </body>   
  39. </html>  

 

四、页面:userdetail.jsp,用于显示用户详细信息,由userlisting.jsp加载

 

  1. <%@ taglib prefix="s" uri="/struts-tags" %>   
  2. <h1>User Details</h1>   
  3. <s:if test="userDetails != null">   
  4.     <table>   
  5.       <tr><td>Id:</td><td><s:property value="userDetails.id" /></td></tr>   
  6.       <tr><td>Name:</td><td><s:property value="userDetails.name" /></td></tr>   
  7.       <tr><td>Email:</td><td><s:property value="userDetails.email" /></td></tr>   
  8.       <tr><td>Address:</td><td><s:property value="userDetails.address" /></td></tr>   
  9.     </table>   
  10. </s:if>  

 

五、ajaxdemo.action.UserListingAction.java,生成用户列表数据,交由userlisting.jsp显示,在实际的应用中,这部分的数据一般是从数据库中取得的。

 

  1. package ajaxdemo.action;   
  2.   
  3. import ajaxdemo.dto.UserListDTO;   
  4. import com.opensymphony.xwork2.ActionSupport;   
  5. import java.util.ArrayList;   
  6. import java.util.List;   
  7.   
  8. /** *//** Populates the user listing data */  
  9. public class UserListingAction extends ActionSupport {   
  10.   
  11.     private List<UserListDTO> userList; // this is available in view automatically!   
  12.     public String execute() throws Exception {   
  13.            
  14.         // create 2 user objects and add to a list   
  15.         System.out.println("*********1");    
  16.         setUserList((List<UserListDTO>) new ArrayList());   
  17.         UserListDTO user = new UserListDTO();   
  18.         user.setId("gjose");   
  19.         user.setName("Grace Joseph");   
  20.         getUserList().add(user);   
  21.            
  22.         user = new UserListDTO();   
  23.         user.setId("peter");   
  24.         user.setName("Peter Smith");   
  25.         getUserList().add(user);   
  26.         System.out.println("*********2");    
  27.         return SUCCESS;   
  28.     }   
  29.   
  30.     public List<UserListDTO> getUserList() {   
  31.         return userList;   
  32.     }   
  33.   
  34.     public void setUserList(List<UserListDTO> userList) {   
  35.         this.userList = userList;   
  36.     }   
  37. }  

 

六、ajaxdemo.action.UserDetailAction.java,当userid被选中时,取得用户详细数据,通过dojo来调用。

 

  1. package ajaxdemo.action;   
  2.   
  3. import ajaxdemo.dto.UserDetailDTO;   
  4. import com.opensymphony.xwork2.ActionSupport;   
  5.   
  6. /**//* Populates user details for a user id selected */  
  7. public class UserDetailAction extends ActionSupport {   
  8.        
  9.     private String userid;   
  10.     private UserDetailDTO userDetails;   
  11.        
  12.     public String execute() throws Exception {   
  13.         // populate only when userid is selected   
  14.         if(userid!=null && !userid.equals(""))   
  15.             populateDetail(userid);   
  16.         return SUCCESS;   
  17.     }   
  18.        
  19.     private void populateDetail(String id) {   
  20.         userDetails = new UserDetailDTO();   
  21.         userDetails.setId(id);   
  22.         userDetails.setName("The Complete Name");   
  23.         userDetails.setEmail("admin@struts2.org");   
  24.         userDetails.setAddress("rich street, lavish road, Struts Land");   
  25.     }   
  26.   
  27.     public String getUserid() {   
  28.         return userid;   
  29.     }   
  30.   
  31.     public void setUserid(String userid) {   
  32.         this.userid = userid;   
  33.     }   
  34.   
  35.     public UserDetailDTO getUserDetails() {   
  36.         return userDetails;   
  37.     }   
  38.   
  39.     public void setUserDetails(UserDetailDTO userDetails) {   
  40.         this.userDetails = userDetails;   
  41.     }   
  42.   
  43. }  

 

七、ajaxdemo.dto.UserListDTO.java、POJO,用于封装用户信息

 

  1. package ajaxdemo.dto;   
  2.   
  3. public class UserListDTO {   
  4. private String id;   
  5. private String name;   
  6. private String email;   
  7. private String address;   
  8. public String getId() {   
  9. return id;   
  10. }   
  11. public void setId(String id) {   
  12. this.id = id;   
  13. }   
  14. public String getName() {   
  15. return name;   
  16. }   
  17. public void setName(String name) {   
  18. this.name = name;   
  19. }   
  20. public String getEmail() {   
  21. return email;   
  22. }   
  23. public void setEmail(String email) {   
  24. this.email = email;   
  25. }   
  26. public String getAddress() {   
  27. return address;   
  28. }   
  29. public void setAddress(String address) {   
  30. this.address = address;   
  31. }   
  32. }   

 

八、ajaxdemo.dto.UserDetailDTO.java、POJO,用于封装用户信息

 

  1. package ajaxdemo.dto;   
  2.   
  3. public class UserDetailDTO {   
  4.   
  5.     private String id;   
  6.     private String name;   
  7.     private String email;   
  8.     private String address;   
  9.   
  10.     public String getId() {   
  11.         return id;   
  12.     }   
  13.   
  14.     public void setId(String id) {   
  15.         this.id = id;   
  16.     }   
  17.   
  18.     public String getName() {   
  19.         return name;   
  20.     }   
  21.   
  22.     public void setName(String name) {   
  23.         this.name = name;   
  24.     }   
  25.   
  26.     public String getEmail() {   
  27.         return email;   
  28.     }   
  29.   
  30.     public void setEmail(String email) {   
  31.         this.email = email;   
  32.     }   
  33.   
  34.     public String getAddress() {   
  35.         return address;   
  36.     }   
  37.   
  38.     public void setAddress(String address) {   
  39.         this.address = address;   
  40.     }   
  41. }  

 

OK,部署完毕后,输入http://localhost:8080/MyTest/UserListingAction.action来测试一下。
当列表中的userid被点中后,javaScript通知Div标签从URL中动态加载返回内容。这个例子中,UserDetailAction取得用户信息并传递给userdetail.jsp。userdetail.jsp生成最终的展示结果,显示在Div中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mgsp2.1.8apk是一个游戏软件的版本号,APK是安卓系统的安装包文件格式。mgsp可能指的是某个游戏的缩写或名称,2.1.8是该游戏的版本号。通过安装mgsp2.1.8apk文件,用户可以在安卓系统上安装和运行这个游戏。 游戏的版本号通常代表了游戏的更新内容和修复的bug,通过更新到2.1.8版本,可能修复了之前版本中存在的一些问题或添加了新的功能。用户可以通过下载mgsp2.1.8apk文件来安装游戏,或者通过应用商店等渠道直接更新到最新版本。 在安装或更新游戏之前,建议先确认手机系统是否支持该游戏的最低系统要求,以确保游戏能够正常运行。此外,在下载mgsp2.1.8apk文件时,也要确保下载渠道的可信度,以避免下载到恶意软件。 总之,mgsp2.1.8apk是一个游戏软件的版本号,用户可以通过安装该文件来在安卓系统上玩这个游戏。 ### 回答2: MGSP2.1.8 APK是一款针对安卓手机的游戏应用程序。这款应用程序是Metal Gear Solid系列游戏的第二个版本,并且是其1.8版本的补丁文件。MGSP2.1.8 APK提供了许多新的功能和更新,以提高玩家的游戏体验。 首先,MGSP2.1.8 APK增加了一些新的游戏模式和关卡,使得玩家可以享受更多的挑战和冒险。这些新增内容包括新的任务和隐藏关卡,使得游戏的可玩性更高。 其次,MGSP2.1.8 APK还改进了游戏的图形和音效效果。通过更新游戏引擎和图像处理技术,玩家可以在游戏中享受更清晰、更逼真的画面。此外,更新后的音效设计也提供了更真实的游戏感受。 此外,MGSP2.1.8 APK还修复了一些以前版本中存在的漏洞和问题。这些修复包括解决游戏闪退、卡顿和崩溃等问题,提高了应用程序的稳定性和流畅性。 总结起来,MGSP2.1.8 APK是Metal Gear Solid系列游戏的一个新版本,提供了许多新的功能和改进,以提高游戏的体验。玩家可以体验更多的游戏模式和关卡,感受到更精美逼真的图形和音效效果,并且享受到修复的漏洞和问题带来的更稳定的游戏体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值