节奏大师破解版金币:struts2.0简单的例子

来源:百度文库 编辑:中财网 时间:2024/04/26 22:01:29

struts2.0简单的例子

    Struts2.0是struts1.0和WebWork2.2合并版本,集成了两大流行MVC框架的优点,对struts框架来说是一个大的提升,同时也更大程度地简化了开发人员的开发过程。
这个例子实现了一个简单的登陆效果,操作步骤如下:
1、首先,要从apache网站上下载struts2.0.11的完整包(http://struts.apache.org/downloads.html),解压后需要找到下列几个文件:
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar
2、然后,我们就开始做第一个例子,新建web项目struts2
3、将上面列举的jar文件拷贝到项目struts2\WEB-INF\lib中,或添加自己的strust2.0用户库
4、新建login.jsp

Java代码
  1. "1.0" encoding="UTF-8" ?>   
  2. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  3.     pageEncoding="UTF-8"%>   
  4. "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
  5. "http://www.w3.org/1999/xhtml">   
  6.   
  7. "Content-Type" content="text/html; charset=UTF-8" />   
  8. Insert title here   
  9.   
  10.   
  11. "login.action" method="post">   
  12. username:"text" name="username" />

      

  13. password:"password" name="password" />

      

  14. "submit" name="Submit" value="提交" />   
  15.   
  16.   
  17.   


struts1与struts2的区别:

struts1通过servlet拦截所有发送过来以do结尾的请求,交有ActionServlet控制,决定由那个Action进行处理

5、新建result.jsp
Java代码
  1. "1.0" encoding="UTF-8" ?>   
  2. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  3.     pageEncoding="UTF-8"%>   
  4. "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
  5. "http://www.w3.org/1999/xhtml">   
  6.   
  7. "Content-Type" content="text/html; charset=UTF-8" />   
  8. Insert title here   
  9.   
  10.   
  11.     username:${requestScope.username}
        
  12.     password:${requestScope.password}    
  13.   
  14.   

6、修改web.xml
Java代码
  1. "1.0" encoding="UTF-8"?>   
  2. "WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">   
  3.        
  4.     struts2.0   
  5.        
  6.         login.jsp   
  7.        
  8.        
  9.         struts2.0   
  10.         class>org.apache.struts2.dispatcher.FilterDispatcherclass>   
  11.        
  12.        
  13.         struts2.0   
  14.         /*   
  15.        
  16.   


struts1与struts2的区别:
struts1是通过servlet做控制器
struts2这里采用Filter过滤客户端发过来的请求

7、创建loginAction.java
Java代码
  1. package com.action;   
  2. public class loginAction {   
  3.     private String username;   
  4.     private String password;       
  5.     public String getUsername() {   
  6.         return username;   
  7.     }   
  8.     public void setUsername(String username) {   
  9.         this.username = username;   
  10.     }   
  11.     public String getPassword() {   
  12.         return password;   
  13.     }   
  14.     public void setPassword(String password) {   
  15.         this.password = password;   
  16.     }   
  17.        
  18.     public String execute()throws Exception{   
  19.         return "success";          
  20.     }   
  21.        
  22. }  


struts1与struts2的区别:
struts1必须继承Action,覆盖execute()
struts2则不需要

8、添加struts.xml
Java代码
  1. "1.0" encoding="UTF-8" ?>   
  2.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  3.     "http://struts.apache.org/dtds/struts-2.0.dtd">   
  4.   
  5.     <package name="struts2.0" extends="struts-default">   
  6.         "login" class="com.action.loginAction">   
  7.             "success">/result.jsp   
  8.            
  9.     package>   
  10.   


struts1与struts2的区别:
struts1在项目\WEB-INF\struts-config.xml配置文件
struts2在项目\src\struts.xml配置文件

9、o了,简单的例子以完成,下面是代码重构:
使用struts2.0标签,添加校验功能
1、修改login.jsp,改为使用struts2.0标签
导入标签<%@ taglib prefix="s" uri="/struts-tags"%>
把form表单替换为使用struts2.0标签
Java代码
  1. "login">   
  2.     "username" label="username">   
  3.     "password" label="password">   
  4.     "submit">   
  5.   

(使用标签可以自动换行,按钮默认右对齐)
2、修改loginAction.java
loginAction继承ActionSupport
重写Validate()验证方法
Java代码
  1. @Override  
  2.     public void validate() {   
  3.         if(null==this.getUsername()||"".equals(this.getUsername().trim())){   
  4.             this.addFieldError("username""username error");//添加错误信息   
  5.         }   
  6.         if(null==this.getPassword()||"".equals(this.getPassword().trim())){   
  7.             this.addFieldError("password""password error");//添加错误信息   
  8.         }   
  9.     }  

3、修改struts.xml,添加出错返回的页面
Java代码
  1. "1.0" encoding="UTF-8" ?>   
  2.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  3.     "http://struts.apache.org/dtds/struts-2.0.dtd">   
  4.   
  5.     <package name="struts2.0" extends="struts-default">   
  6.         "login" class="com.action.loginAction">   
  7.                    
  8.                "input">/login.jsp            "success">/result.jsp   
  9.            
  10.     package>   
  11.   


struts1与struts2的区别:
struts1需要在form里添加标签,来提示错误处理的信息
struts2则不需要

匹配用户名为hello,密码为world
1、修改loginAction.java下的execute()方法
Java代码
  1. public String execute()throws Exception{   
  2.         if("hello".equals(this.getUsername().trim())&&"world".equals(this.getPassword().trim())){   
  3.             return "success";      
  4.         }   
  5.         else{   
  6.             this.addFieldError("username""username or password error");//定义在username上面提示错误信息   
  7.             return "failer";       
  8.         }   
  9.                
  10.     }  

2、修改struts.xml,增加failer映射
Java代码
  1. "1.0" encoding="UTF-8" ?>   
  2.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  3.     "http://struts.apache.org/dtds/struts-2.0.dtd">   
  4.   
  5.     <package name="struts2.0" extends="struts-default">   
  6.         "login" class="com.action.loginAction">   
  7.             "input">/login.jsp   
  8.             "success">/result.jsp   
  9.                      
  10.             "failer">/login.jsp   
  11.            
  12.     package>   
  13.   

3、全部完成,把制作好的web应用struts2拷贝到tomcat下运行