sturts2入门实例
来源:互联网 发布:阿里云个人邮箱smtp 编辑:程序博客网 时间:2024/06/09 20:43
原文链接:http://gongjiayun.iteye.com/blog/802000
sturts2入门实例:
主要要完成以下加几点:
1. 引入struts2相应的jar包
从网上下载,或者用MyEclipse的菜单MyEclipse→project capabilites -> Add capabilites
2. 定义实体类
Book.java
package com.gjy.struts2.entity;public class Book {private static Object book[]=new Object[4];public Book(){book[0] = "《java编程思想》";book[1] = "《Struts2权威指南》";book[2] = "《精通Oracle》";book[3] = "《我的Flex我精通》";}public Object[] getBook(){return book;}}3.定义Action类
写Action,struts2的acction不继承其它类,是一个普通的java类,它不与serverlet API 相偶合,降低了代码的可维护性,使得代码
更加容易测试。
(1)自定义一个action接口
package com.gjy.struts2.interfaceAction;public interface Action {public static String SUCCESS="suc";public static String ERROR="error";public String execute()throws Exception;}(2).写一个loginAction,实现action接口,在这里,action的业务逻辑没有与LoginAction分开,可自行实现分开
package com.gjy.struts2.loginAction;import java.util.ArrayList;import java.util.List;import java.util.Map;import com.gjy.struts2.entity.Book;import com.gjy.struts2.interfaceAction.Action;import com.opensymphony.xwork2.ActionContext;public class LoginAction implements Action {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;}//处理用护请求的execute方法public String execute() throws Exception{if (getUserName().equals("gongjiayun")&& getPassWord().equals("hehe") ){//通过ActionContext访问Web对象的Session对象,此处的ActionContext返回的是一个Map//虽然struts2的action中没有HttpSession对象,但我们也可以通过通过ActionContext访问Web对象的Session对象Map sessionMap = ActionContext.getContext().getSession();sessionMap.put("user" , getUserName());Book book = new Book();Object books[]= book.getBook();List<Object[]> bookList = new ArrayList<Object[]>();bookList.add(books);sessionMap.put("book", bookList);return SUCCESS;}else{return ERROR;}}}4.写一个登陆页面login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'login.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <p>用户登陆</p> <form action="LoginAciton.action"> username:<input type="text" id="userName" name="userName"/><br/><br/> password:<input type="password" id="passWord" name="PassWord"/><br/><br/> <input type="submit" value="submit"> </form> </body></html>
5. 写一个显示页面suc.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ taglib prefix="s" uri="/struts-tags"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'suc.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <center><div> WelCome,${sessionScope.user},you can do anything! Long Long ago,I have a dream !<br> <table border="1px" bordercolor="blue" id="tbColor"> <caption>作者gjy的图书</caption> <c:forEach var="books" items="${book}" > <tr > <td>书名:</td> <td>${books[0] }</td> </tr> <tr> <td>书名:</td> <td>${books[1] }</td> </tr> <tr> <td>书名:</td> <td>${books[2] }</td> </tr> <tr> <td>书名:</td> <td>${books[3] }</td> </tr> </c:forEach> </table> </div></center> </body></html>
6. 写一个error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'suc.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> error,you can do nothing! <br> </body></html>
7.配置struts.xml (要放在src目录下) 如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><!-- Struts 2 的Action必须放在包空间下 --><package name="strutsqs" extends="struts-default"><!-- 定义action的名字以及action的实现类 --><action name="LoginAciton" class="com.gjy.struts2.loginAction.LoginAction"><!-- 定义action的处理结果result,result有两个属性,其中name指定返回名称,tyle指定返回的类型 --><!-- 处理Login错误时返回/error.jsp --> <result name="error">/error.jsp</result><!-- 处理Lognin正确时/suc.jsp --> <result name="suc">/suc.jsp</result></action></package></struts>
7. web.xml
myEclipse导入Struts2包会自行修改web.xml,就不需要自行编写了。
struts2与struts1不同,struts2是通过一系列的过滤器来组成过滤链来对用户的请求作处理
<span style="font-size:14px;"> <?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <!--定义struts2的核心Filter的实现类 --> <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></web-app></span>
0 0
- sturts2入门实例
- 原生js的ajax与sturts2实例
- sturts2拦截器的使用实例
- sturts2标签
- 配置sturts2
- sturts2标签
- Sturts2 HelloWorld
- sturts2+json+extjs_tree
- Spring+Sturts2+Hibernate集成
- sturts2 输出标签
- sturts2的配置文件
- sturts2实现上传
- sturts2整合json开发
- Sturts2的国际化处理
- sturts2.2-annotation
- Sturts2的常量配置
- Sturts2的请求流程
- sturts2 标签截取字符串
- 关键词随机飞入飞出效果
- keil分散加载的例子
- Android手势缩放图片以及图片黏贴在手指随手势移动
- .NET — Examples of use (连接池,更新blob字段,事件,备份,恢复,取数据库系统信息)
- 想学JS的原型和闭包吗?COME ON(7)
- sturts2入门实例
- 无法加载 mysql (外链,英语) 扩展,请检查您的 PHP 配置 windows 2008 Server
- Linux rpm 命令参数使用详解[介绍和应用]
- 想学JS的原型和闭包吗?COME ON(8)
- 想学JS的原型和闭包吗?COME ON(9)
- 想学JS的原型和闭包吗?COME ON(10)
- 【Android】使用NDK定位Crash
- 并发无锁队列UnlockQueue(单生产者单消费者kfifo)
- jQuery 获取DOM节点的两种方式