Struts2入门经典实例

转自: http://blog.csdn.net/yidamr/article/details/8743712

struts2入门-第一个例子  http://my.oschina.net/tomzhao/blog/23782

第一个struts2实例——HelloWorld http://www.cnblogs.com/jevil/archive/2013/02/01/2888955.html

Struts2.0搭建和简单实例 http://realzjy.blog.51cto.com/818594/247862


写一个Steuts2的经典入门案例,怕忘记啊,有时候突然记不起知识概念了,所以还是记个笔记,网络上找了几个,发现部署出来要报错,最后还是自己写一个比较靠谱。

做了一个登陆程序作为入门例子。登陆会去交互,并返回页面,比较适合以后扩展的项目,容易理解!

例子:登陆的Struts2案例

环境:

     IDE工具:Myeclipse  ,  Tomcat6.0

所需jar包:  

struts2-core-2.1.8.1.jar   

struts2-json-plugin-2.1.8.1.jar

xwork-core-2.1.6.jar

commons-fileupload-1.2.1.jar

freemarker-2.3.15.jar

junit4.4.jar

ognl-2.6.7.jar

步骤:

1. 创建一个web project项目

2.导入Struts2所需jar包

3.配置web.xml

4.配置struts2.xml

5.写action类(LoginUser.java)

6.写jsp页面

7.启动tomcat.运行项目

项目最后截图:


开始:

1.创建一个项目

还是截图,项目名称为:Struts2SpExa


2.导入所需jar包

导入所需jar包到项目的lib文件夹下(或者通过Build Path导入也可)


3.在WEB-INF下面的web.xml中配置:

配置拦截器和起始页面

[html]   view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"   
  3.     xmlns="http://java.sun.com/xml/ns/javaee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  7.     <filter>  
  8.         <filter-name>struts2</filter-name>  
  9.         <filter-class>  
  10.             org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  
  11.         </filter-class>  
  12.     </filter>  
  13.    
  14.     <filter-mapping>  
  15.         <filter-name>struts2</filter-name>  
  16.         <url-pattern>/*</url-pattern>  
  17.     </filter-mapping>  
  18.   <welcome-file-list>  
  19.     <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>  
  20.   </welcome-file-list>  
  21.       
  22. </web-app>  
4.配置struts.xml

配置strust2要调用的action

[html]   view plain copy print ?
  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 action>  
  6. <struts>  
  7. <package name="todayMZ" extends="struts-default" namespace="/">   
  8. <action name="loginUser" class="todayMZ.user.action.UserAction">   
  9. <result name="success">/WEB-INF/jsp/success.jsp</result>   
  10. <result name="fail">/WEB-INF/jsp/fail.jsp</result>  
  11. </action>  
  12. </package>  
  13. </struts>  
5.写action类(LoginUser.java)

这个类主要用于struts2跳转到这个action后。默认执行execute()方法。并根据结果返回字符,然后struts2.xml根据返回的字符跳到相应的页面

[java]   view plain copy print ?
  1. package todayMZ.user.action;  
  2.   
  3. public class UserAction {  
  4.      private String username;  
  5.      private String password;  
  6.     public String getUsername() {  
  7.         return username;  
  8.     }  
  9.     public void setUsername(String username) {  
  10.         this.username = username;  
  11.     }  
  12.     public String getPassword() {  
  13.         return password;  
  14.     }  
  15.     public void setPassword(String password) {  
  16.         this.password = password;  
  17.     }  
  18.     public String execute() throws Exception {  
  19.         // 只要用户名为todayMZ,密码为1234就可成功登陆  
  20.         if ("todayMZ".equals(this.getUsername().trim()) && "1234".equals(this.getPassword().trim())) {  
  21.             return "success";  
  22.         } else {  
  23.             return "fail";  
  24.         }  
  25.     }  
  26.       
  27. }  

6.写jsp页面 
这里有三个jsp页面:login.jsp,   success.jsp,      fail.jsp

login.jsp(用了简单的标签) 

[html]   view plain copy print ?
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%@ taglib prefix="s" uri="/struts-tags" %>  
  3. <%  
  4. String path = request.getContextPath();  
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  6. %>  
  7.   
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  9. <html>  
  10.   <head>  
  11.     <title>登陆页面</title>  
  12.   </head>  
  13.      
  14.   <body>  
  15.     <center>  
  16.         <s:form action="loginUser"  method="post" namespace="/" >  
  17.                 <s:textfield name="username" label="用户名"></s:textfield>  
  18.                 <s:password name="password" label="密码"></s:password>  
  19.                 <s:submit value="确定"/>  
  20.                 <s:reset value="重置"/>  
  21.         </s:form>  
  22.     </center>  
  23.   </body>  
  24. </html>  
success.jsp
[html]   view plain copy print ?
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%@ taglib prefix="s" uri="/struts-tags" %>  
  3. <%  
  4. String path = request.getContextPath();  
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  6. %>  
  7.   
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  9. <html>  
  10.   <head>  
  11.     <title>成功页面</title>  
  12.   </head>  
  13.      
  14.   <body>  
  15.     <p align="center">登陆成功!!!您的用户名是<s:property value="username"></s:property></p>  
  16.   </body>  
  17. </html>  
fail.jsp
[html]   view plain copy print ?
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %>  
  6.   
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  8. <html>  
  9.   <head>    
  10.     <title>失败页面</title>  
  11.   </head>  
  12.      
  13.   <body>  
  14.     <p align="center">登陆失败!!!</p>  
  15.   </body>  
  16. </html>  
7.启动tomcat.运行项目

run项目。在地址栏中输入:http://localhost:8080/Struts2SpExa/ 

弹出登录界面:(输入toadyMZ,密码123登录成功)


That's OK !

如果过程中报错: No configuration found for the specified action,

那是因为你在login页面使用标签的时候,form表单提交没有指明namespace=??。

-----------------我是分割线----------------------- 


本文适合初学者入门案例,步骤无先后规定。也用来方便我记起一些东西。

文章中为什么要这么做?为什么这么配置?导入jar的作用?下面有我也会做个笔记,防止自己忘记,也是归纳自己的知识,忘记的朋友们也可以看看。


转载请说明出处:http://blog.csdn.net/todaymz/article/details/8743712


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值