`

Struts2 入门实例代码

阅读更多

Struts.xml 文件

 

代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC   
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
  5. <struts>  
  6.     <constant name="struts.enable.DynamicMethodInvocation" value="true" />  
  7.     <constant name="struts.devMode" value="true" />  
  8.     <include file="helloworld.xml"/>  
  9. </struts>  
<script>render_code();</script>

 

HelloWorld.xml

 

代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC   
  3.         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
  4.         "http://struts.apache.org/dtds/struts-2.0.dtd">  
  5. <struts>  
  6.     <include file="struts-default.xml"/>  
  7.     <package name="helloworld" namespace="/" extends="struts-default">  
  8.         <interceptors>  
  9.             <interceptor name ="authentication" class ="com.jamesby.struts2.LogonInterceptor"/>    
  10.             <interceptor-stack name="helloWorldStack">  
  11.                 <interceptor-ref name="authentication"/>  
  12.                 <interceptor-ref name="paramsPrepareParamsStack"/>  
  13.             </interceptor-stack>  
  14.         </interceptors>     
  15.         <default-interceptor-ref name="helloWorldStack"/>  
  16.         <global-results>  
  17.             <result name="login">/WEB-INF/jsp/Logon.jsp</result>                   
  18.                   </global-results>        
  19.         <action name="Logon_*" method="{1}" class="com.jamesby.struts2.Logon">  
  20.             <interceptor-ref name="paramsPrepareParamsStack"/>         
  21.             <result type="redirect-action">Main</result>  
  22.             <result name="input">/WEB-INF/jsp/Logon.jsp</result>           
  23.         </action>  
  24.         <action name="crud" method="{1}" class="com.jamesby.struts2.UserAction">  
  25.             <result name="list">/WEB-INF/jsp/userList.jsp</result>              <result name="success" type="redirect-action">crud!list</result>  
  26.             <result name="input">/WEB-INF/jsp/userForm.jsp</result>  
  27.         </action>  
  28.         <action name="*" class="com.jamesby.struts2.ExampleSupport">  
  29.             <result>/WEB-INF/jsp/{1}.jsp</result>  
  30.         </action>            
  31.     </package>  
  32. </struts>  
<script>render_code();</script>

 

LogonInterceptor.java

 

代码
  1. package com.jamesby.struts2;   
  2. import java.util.Map;   
  3. import com.jamesby.struts2.persist.User;   
  4. import com.opensymphony.xwork2.Action;   
  5. import com.opensymphony.xwork2.ActionInvocation;   
  6. import com.opensymphony.xwork2.interceptor.AbstractInterceptor;   
  7. public class LogonInterceptor extends AbstractInterceptor{   
  8.     @Override  
  9.     public String intercept(ActionInvocation ai) throws Exception {   
  10.         Map session = ai.getInvocationContext().getSession();   
  11.         User user = (User) session.get("user");   
  12.         if (null != user) {   
  13.             return ai.invoke();   
  14.         } else {   
  15.             return Action.LOGIN;   
  16.         }   
  17.     }   
  18. }  
<script>render_code();</script>

 

Logon.java

 

代码
  1. package com.jamesby.struts2;   
  2. import java.util.Map;   
  3. import org.apache.struts2.interceptor.SessionAware;   
  4. import org.apache.struts2.interceptor.validation.SkipValidation;   
  5. import com.jamesby.struts2.persist.DataBaseMock;   
  6. import com.jamesby.struts2.persist.User;   
  7. import com.opensymphony.xwork2.ActionSupport;   
  8. public class Logon extends ActionSupport implements SessionAware {   
  9.     private Map session;   
  10.     public void setSession(Map session) {   
  11.         this.session = session;   
  12.     }   
  13.     @SkipValidation  
  14.     public String doInput() throws Exception {   
  15.         return INPUT;   
  16.     }   
  17.     public String doLogon() throws Exception {   
  18.         User user = DataBaseMock.selectUserByUsernameAndPassword(getUsername(),   
  19.                 getPassword());   
  20.         if (null == user)   
  21.             return INPUT;   
  22.         session.put("user", user);   
  23.         return SUCCESS;   
  24.     }   
  25.     private String username;   
  26.     public String getUsername() {   
  27.         return username;   
  28.     }   
  29.     public void setUsername(String username) {   
  30.         this.username = username;   
  31.     }   
  32.     private String password;   
  33.     public String getPassword() {   
  34.         return password;   
  35.     }   
  36.     public void setPassword(String password) {   
  37.         this.password = password;   
  38.     }   
  39. }  
<script>render_code();</script>

 

UserAction.java

 

代码
  1. package com.jamesby.struts2;   
  2. import java.util.ArrayList;   
  3. import java.util.HashMap;   
  4. import java.util.List;   
  5. import org.apache.struts2.interceptor.validation.SkipValidation;   
  6. import com.jamesby.struts2.persist.DataBaseMock;   
  7. import com.jamesby.struts2.persist.User;   
  8. import com.opensymphony.xwork2.ActionSupport;   
  9. public class UserAction  extends ActionSupport {   
  10.     private User user=new User();   
  11.     private List<User> userList;   
  12.     public List<HashMap> getSexArray() {   
  13.         List<HashMap> sexArray = new ArrayList<HashMap>();   
  14.         HashMap male = new HashMap();   
  15.         male.put("key",new Integer(1));   
  16.         male.put("value","男");   
  17.         HashMap female = new HashMap();   
  18.         female.put("key",new Integer(2));   
  19.         female.put("value","女");           
  20.         sexArray.add(male);   
  21.         sexArray.add(female);   
  22.         return sexArray;   
  23.     }      
  24.     public List<HashMap> getFromArray() {   
  25.         List<HashMap> fromArray = new ArrayList<HashMap>();   
  26.         HashMap bj = new HashMap();   
  27.         bj.put("id",new Integer(1));   
  28.         bj.put("name","北京");   
  29.         HashMap sh = new HashMap();   
  30.         sh.put("id",new Integer(2));   
  31.         sh.put("name","上海");           
  32.         HashMap tj = new HashMap();   
  33.         tj.put("id",new Integer(3));   
  34.         tj.put("name","天津");   
  35.         fromArray.add(bj);   
  36.         fromArray.add(sh);   
  37.         fromArray.add(tj);   
  38.         return fromArray;   
  39.     }   
  40.     @SkipValidation  
  41.     public String doList() throws Exception {   
  42.         userList = DataBaseMock.selectAllUser();   
  43.         return "list";   
  44.     }   
  45.     @SkipValidation  
  46.     public String doInput() {   
  47.         return INPUT;   
  48.     }      
  49.     public String doSave() {   
  50.         if (null == user.getUserid()) {   
  51.             user.setUserid(new Integer(DataBaseMock.getNewUserId()));   
  52.             DataBaseMock.saveUser(user);   
  53.         }else  
  54.         {   
  55.             DataBaseMock.updateUser(user);   
  56.         }   
  57.         return SUCCESS;   
  58.     }   
  59.     @SkipValidation  
  60.     public String doRead()   
  61.     {   
  62.         user = DataBaseMock.getUser(user.getUserid());   
  63.         return INPUT;   
  64.     }   
  65.     @SkipValidation  
  66.     public String doDelete() {   
  67.         DataBaseMock.deleteUser(user);   
  68.         return SUCCESS;   
  69.     }          
  70.     public List<User> getUserList() {   
  71.         return userList;   
  72.     }   
  73.     public void setUserList(List<User> userList) {   
  74.         this.userList = userList;   
  75.     }   
  76.     public User getUser() {   
  77.         return user;   
  78.     }   
  79.     public void setUser(User user) {   
  80.         this.user = user;   
  81.     }   
  82. }  
<script>render_code();</script>

 

ExampleSupport.java

 

代码
  1. package com.jamesby.struts2;   
  2. import com.opensymphony.xwork2.ActionSupport;   
  3. public class ExampleSupport extends ActionSupport {   
  4. }  
<script>render_code();</script>

 

User.java

 

代码
  1. package com.jamesby.struts2.persist;   
  2. public class User {   
  3.     private Integer userid;   
  4.     private String username;   
  5.     private String password;   
  6.     private int sex;   
  7.     private int age;   
  8.     private int from;   
  9.     public int getFrom() {   
  10.         return from;   
  11.     }   
  12.     public void setFrom(int from) {   
  13.         this.from = from;   
  14.     }   
  15.     public String getPassword() {   
  16.         return password;   
  17.     }   
  18.     public void setPassword(String password) {   
  19.         this.password = password;   
  20.     }   
  21.     public int getSex() {   
  22.         return sex;   
  23.     }   
  24.     public void setSex(int sex) {   
  25.         this.sex = sex;   
  26.     }   
  27.     public Integer getUserid() {   
  28.         return userid;   
  29.     }   
  30.     public void setUserid(Integer userid) {   
  31.         this.userid = userid;   
  32.     }   
  33.     public String getUsername() {   
  34.         return username;   
  35.     }   
  36.     public void setUsername(String username) {   
  37.         this.username = username;   
  38.     }   
  39.     public int getAge() {   
  40.         return age;   
  41.     }   
  42.     public void setAge(int age) {   
  43.         this.age = age;   
  44.     }   
  45. }  
<script>render_code();</script>

 

DataBaseMock.java

 

代码
  1. package com.jamesby.struts2.persist;   
  2. import java.util.ArrayList;   
  3. import java.util.List;   
  4. public class DataBaseMock {   
  5.     private static List<User> _cache = new ArrayList<User>();   
  6.     private static int userid = 0;   
  7.     static {   
  8.         User user = new User();   
  9.         user.setUserid(new Integer(0));   
  10.         user.setUsername("admin");   
  11.         user.setPassword("12345688");   
  12.         user.setFrom(1);// 北京   
  13.         user.setSex(1);// 男   
  14.         user.setAge(18);   
  15.         _cache.add(user);   
  16.     }   
  17.     public static User selectUserByUsernameAndPassword(String username,String password)   
  18.     {   
  19.         for (User u : _cache) {   
  20.             if (u.getUsername().equals(username)&&u.getPassword().equals(password)) {   
  21.                 return u;   
  22.             }   
  23.         }   
  24.         return null;   
  25.     }   
  26.     public static List<User> selectAllUser()   
  27.     {   
  28.         return _cache;   
  29.     }   
  30.     public static int getNewUserId() {   
  31.         return ++userid;   
  32.     }   
  33.     public static void saveUser(User user) {   
  34.         _cache.add(user);   
  35.     }   
  36.     public static void updateUser(User user) {   
  37.         deleteUser(user);   
  38.         saveUser(user);   
  39.     }   
  40.     public static void deleteUser(User user) {   
  41.         for (User u : _cache) {   
  42.             if (u.getUserid().intValue() == user.getUserid().intValue()) {   
  43.                 _cache.remove(u);   
  44.                 break;   
  45.             }   
  46.         }   
  47.     }   
  48.     public static User getUser(Integer userid) {   
  49.         return _cache.get(userid);   
  50.     }   
  51. }  
<script>render_code();</script>

 

Logon-validation.xml

 

代码
  1. <!DOCTYPE validators PUBLIC    
  2. "-//OpenSymphony Group//XWork Validator 1.0.2//EN"    
  3. "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">  
  4. <validators>  
  5.     <field name="username">  
  6.         <field-validator type="requiredstring">  
  7.             <message key="requiredstring"/>  
  8.         </field-validator>  
  9.     </field>  
  10.     <field name="password">  
  11.         <field-validator type="requiredstring">  
  12.             <message key="requiredstring"/>  
  13.         </field-validator>  
  14.     </field>  
  15. </validators>  
<script>render_code();</script>

 

UserAction-validation.xml

 

代码
  1. <!DOCTYPE validators PUBLIC    
  2. "-//OpenSymphony Group//XWork Validator 1.0.2//EN"    
  3. "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">  
  4. <validators>  
  5.   <field name="user.username">  
  6.      <field-validator type="requiredstring">  
  7.         <message key="errors.required.username"/>  
  8.       </field-validator>  
  9.   </field>  
  10.   <field name="user.password">  
  11.      <field-validator type="requiredstring">  
  12.         <message key="errors.required.password"/>  
  13.       </field-validator>  
  14.   </field>  
  15.   <field name="user.sex">  
  16.      <field-validator type="required">  
  17.         <message key="errors.required.sex"/>  
  18.       </field-validator>  
  19.   </field>     
  20.   <field name="user.age">  
  21.      <field-validator type="required" short-circuit="true">  
  22.         <message key="errors.required.age"/>  
  23.       </field-validator>  
  24.       <field-validator type="int">  
  25.         <param name="min">18</param>  
  26.         <param name="max">65</param>  
  27.         <message key="errors.required.age.limit"/>  
  28.       &
分享到:
评论
2 楼 peigen 2007-10-30  
你的web.xml这个文件有问题哦

WEB-INF/web.xml:19: <taglib> is an unexpected tag (parent <web-app> starts
at 5).
1 楼 peigen 2007-10-30  
感谢楼主文章,小弟正在学习struts2

相关推荐

    struts2入门实例代码,sourceforge.net经典

    这个"struts2-tutorial-lesson2.zip"压缩包包含了一个基础的Struts2入门实例,是SourceForge.net上的经典教学资源。SourceForge作为一个开源项目托管平台,为开发者提供了许多高质量的学习材料。 这个入门实例...

    struts2入门实例

    Struts2入门实例通常会涉及如何创建一个基本的web应用,实现对数据的增删查改操作,并与数据库进行交互。 在"struts2入门实例"中,我们首先会接触到Struts2的核心概念。这包括Action类,它扮演控制器的角色,负责...

    Struts1入门实例(完整代码)

    对于初学者,除了这个入门实例,还可以参考Struts1的官方文档、教程和在线课程,深入了解Struts1的工作原理、配置细节以及最佳实践。 总之,Struts1入门实例是一个很好的起点,它让你能快速搭建一个简单的Web应用...

    struts2入门例子

    这个"struts2入门例子"旨在帮助初学者理解Struts2的基本架构和核心功能,通过实际操作来学习如何配置Struts2框架以及实现页面跳转。 在Struts2中,`struts.xml`是核心配置文件,它是整个应用的入口点,负责定义动作...

    struts2入门教程+实例源代码

    总之,这个"struts2入门教程+实例源代码"是初学者学习Struts2的理想资源,它提供了从零开始构建Struts2应用的全面指导。通过学习,你将能够创建自己的Struts2应用,并为进一步的Web开发打下坚实基础。在实践中不断...

    一个Spring的入门实例;一个Struts的入门实例

    以上就是 Spring 和 Struts 的基础概念及入门实例的创建流程。这两个框架各有优势,Spring 更注重模块化和灵活性,而 Struts 则更侧重于 MVC 结构的实现。在实际项目中,两者常被一起使用,形成所谓的“Spring + ...

    struts2入门小实例

    本入门实例将带你逐步了解Struts2的基础知识,帮助你快速掌握其核心概念。 首先,我们需要理解Struts2框架的基本架构。它基于拦截器(Interceptor)机制,通过配置Action类和结果视图来处理用户请求。Action类是...

    Struts入门(实例代码+pdf讲解文件)

    本资源包提供了Struts入门的学习材料,包括实例代码和PDF讲解文件,非常适合初学者理解和掌握Struts框架。 1. **Struts 框架基础** - **MVC模式**:Struts基于Model-View-Controller(MVC)设计模式,通过分离业务...

    struts2入门demo

    首先,Struts2是一个基于MVC(Model-View-Controller)架构的框架,它提供了一种组织应用代码的方式,使得业务逻辑、数据模型和用户界面能够有效地分离。在本入门案例中,你可能会看到以下几个核心组件: 1. **...

    Struts2.0入门实例源码

    通过这个入门实例,你可以逐步了解并掌握Struts2.0的各个关键元素,理解其工作流程,并能够创建和运行自己的Struts2应用程序。实际操作过程中,结合源码分析,将有助于加深对框架原理的理解,为后续的Java Web开发...

    Struts2入门教程,有源码和实例

    这个入门教程包含了源码和实例,旨在帮助初学者快速理解并掌握Struts2的核心概念和工作原理。 首先,让我们深入了解一下Struts2的基础知识。Struts2是Apache软件基金会的开源项目,它是Struts1的升级版,融合了...

    struts2经典入门实例

    这个经典入门实例将引导我们深入了解Struts2的核心概念和实践操作,特别是通过包含过滤器的设置来增强应用的功能和安全性。 首先,我们要明白Struts2的工作原理。它是基于Model-View-Controller(MVC)设计模式的,...

    Struts2入门教程.pdf

    ### Struts2入门教程知识点概览 #### 一、Struts2框架简介 - **Struts2起源**:Struts2并非一个全新的Web框架,而是建立在WebWork框架设计理念之上,融合了Struts1的优点而形成的一个框架。可以说,它是Struts1与...

    struts2_入门实例

    在本入门实例中,我们将探讨如何使用Struts2创建一个简单的Web应用程序。 首先,我们需要确保具备正确的开发环境。在本教程中,使用的是MyEclipse6作为开发工具,Tomcat6作为Web服务器,Struts2的版本为2.0.11.1,...

Global site tag (gtag.js) - Google Analytics