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
原创粉丝点击