struts2.0的Demo
来源:互联网 发布:二战网络射击游戏 编辑:程序博客网 时间:2024/05/17 03:19
提前准备工作,需从网上下载struts-2.2.3.1-all.zip压缩包。
第一步:
首先创建一个web项目(File-New-Web-Dynamic Web Project),名字为:struts2-examples
第二步:
把从网上下载struts-2.2.3.1-all.zip压缩包里的lib下的asm-3.1.jar、asm-commons-3.1.jar、asm-tree-3.1.jar、commons-fileupload-1.2.2.jar、commons-io-2.0.1.jar
commons-lang-2.5.jar、freemarker-2.3.16.jar、javassist-3.11.0.GA.jar、ognl-3.0.1.jar、struts2-core-2.2.3.1.jar、xwork-core-2.2.3.1.jar拷贝到WEB-INF/lib下。
右击项目名-properties-Java Build Path-Libraries-Add JARs-全选择刚刚lib下的jar包。我之前在网上查的几个包导入后,运行后,发现报错。所以,我又把struts-2.2.3.1-all.zip压缩包里struts2-blank项目里的包全拷贝过来的,就是上面的那几个包。顺便把web.xml也给拷贝过来。
第三步:
web.xml如下所示:
<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_9" 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"> <display-name>Struts Blank</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list></web-app>
web.xml里面有这样一段:<welcome-file>index.html</welcome-file>,这一步也很重要,一定要在WebContent目录下(与WEB-INF文件夹在同一级目录下)建一个index.html与之匹配,要不然,会出一些莫名其妙的错误。
第四步:
index.html内容如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head> </head><body><p>Loading ...</p></body></html>
第五步:
在src目录下,新建一个struts.xml(名字的拼写很重要,这个名字不能随便命名)文件,内容如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "D:\struts-2.2.3.1\src\core\src\main\resources\struts-2.0.dtd"><struts> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <action name="Login" class="com.struts.action.LoginAction"> <result name="error">/pages/error.jsp</result> <result name="success">/pages/success.jsp</result> </action> </package></struts>
"D:\struts-2.2.3.1\src\core\src\main\resources\struts-2.0.dtd"在头部有这样一句话,这是我把struts-2.0.dtd原来的路径换成我本地的了,原来的一直有警告,不过,我换成本地的还是有警告,不知道是为什么。。。这个struts-2.0.dtd 就是struts-2.2.3.1这个包里的,目录就是struts-2.2.3.1\src\core\src\main\resources\struts-2.0.dtd,你把struts-2.0.dtd这个文件放到自己本地后,把本地目录替换成我上面的那句话就行了。
<package name="default" namespace="/" extends="struts-default"> <action name="Login" class="com.struts.action.LoginAction"> <result name="error">/pages/error.jsp</result> <result name="success">/pages/success.jsp</result> </action> </package>
这里的package里的name=“default"这个名字是随便给的,namespace="/"这个是固定的,extends="struts-default"好像也是固定的。
action里的name与下面的login.jsp里form里的action属性名要保持一致,class即为Action里的全路径,result 里的name="error",这里的error值与等会下面的LoginAction.java里的return后的值保持一致即可,即要跳转的页面啦。
第六步:
现在,再在WebContent目录下新建一个文件夹pages,在此文件夹中存放jsp页面。我这里新建了三个jsp页面,即login.jsp、success.jsp、error.jsp.
分别如下所示:
login.jsp,这里可以用S标签来做,就几行就可以了,我写的比较繁杂了。
<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><!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>User Login</title></head><body><form action="/struts2-examples/Login.action" method="post"><table align="left" width="50%" border="0" cellpadding="0"cellspacing="0"><tr><td></td></tr><tr><td height="30" bgcolor="" align="center" valign="middle">用户名:</td><td align="left" height="30" valign="middle"><inputstyle="width: 150px" type="text" name="username" value=""></input></td></tr><tr><td height="30" bgcolor="" align="center" valign="middle">密 码:</td><td align="left" height="30" valign="middle"><inputstyle="width: 150px" type="password" name="password" value=""></input></td></tr><tr><td align="right"><input type="submit" name="button" value="提交"></input></td></tr></table></form></body></html>
<form action="/struts2-examples/Login.action" method="post">上面里的这段话很重要、很重要。我之前因为这路径,浪费了不少时间。“struts2-examples”即为项目名字,“/Login.action”与struts.xml里的action里的name属性要保持一致。刚刚在上面已提到。这里加上这句话,运行时即“http://localhost:8080/struts2-examples/Login.action”会以此地址来运行。
点击提交按钮后,若成功,则跳转到success.jsp页面。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!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>login success</title></head><body><center>Login Success!!!</center></body></html>
点击提交按钮后,若失败,则跳转到error.jsp页面。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!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>login error</title></head><body><center>login error!!!</center></body></html>
第七步:
再在src目录下新建一个包,包名为com.struts.action,里面再新建一个类,类名为LoginAction.java,一定要继承“ActionSupport”
LoginAction.java代码如下:
package com.struts.action;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String execute() throws Exception {if (username.equalsIgnoreCase("zhangqin")&& password.equalsIgnoreCase("1314520")) {return "success";}return "error";}}
这里return后的“success"与“error"即与struts.xml里的一定要保持一致。
提醒一下:在eclipse内部运行时,我明明修改了,可重启Tomcat后,还是没有变成我最新修改的,一直有缓存,而且清不掉。所以,最好到外面的浏览器去运行。
其实很简单哦,这是我自己手动搭建的。一开始老是出现一些莫名其妙的问题。
问题如下:
包没有导全、index.html给丢了、login.jsp里的action路径写的有问题、等等。
这些错误都是因为自己对这个框架的不了解导致的,经过,这一折腾,我已经有点小明白了。
标记一下,以免以后过段时间自己又忘记。
错误肯定没有的,因为这是我自己运行好的。
- struts2.0的Demo
- Struts2登陆的Demo
- Struts2登陆的Demo
- Struts2登陆的Demo
- struts2框架的简单demo
- struts2 demo
- struts2 demo
- Struts2 Demo
- struts2 demo
- ext集成struts2的小demo
- struts2基于注解的配置Demo
- struts2+hibernate4+spring4的整合demo
- Struts2简单的 单文件上传Demo
- 搭建一个struts2的简易Demo
- Extjs4.0+struts2简单MVC 实例demo
- Extjs4.0+struts2简单MVC 实例demo
- 配置hbm的hibernate小demo(入门级小案例ajax+struts2.0+hibernate3.0)
- struts2的demo中show case的crud示例
- 敏捷开发松结对编程系列之十:代码审查最佳实践
- 随笔八:存储器层次结构
- Qt 正则表达式简单测试
- 1099
- HTML特殊字符表
- struts2.0的Demo
- MySQL中UNION和UNION ALL的使用
- speeding up app in android
- MS Chart Control - X轴 项目超9项时 Label显示不完全(已解决)
- Android---NDK编译静态库失败
- struts 2-002-数据校验的应用
- Spring For Android 插件配置
- 数据库数字参考表的妙用
- linux内核文档翻译—V4L2-framework.txt