首页 > 其他 > 详细

java 从零开始,学习笔记之基础入门<Struts2_实战演练(上)>(三十八)

时间:2014-02-15 12:24:59      阅读:374      评论:0      收藏:0      [点我收藏+]

Struts2_实战演练(上)

三个准备:

1.导入Struts2库(jar包)

2.添加核心配置文件struts.xml

3.配置properties文件

 

准备二,配置struts2核心filter

Web.xml

<?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>filterDispatcher</filter-name>

    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

  </filter>

 

  <filter-mapping>

    <filter-name>filterDispatcher</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

 

</web-app>

 

 

准备三:配置properties文件

struts.properties

struts.action.extension=do

 

第一个sturts框架

登录框:

Index.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 ‘index.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>

    用户登录

    <form action="login.do" name="userform" id="userform">

    用户姓名:<input type="text" name="userName" id="uname"/>

     <br/>

    用户密码:<input type="password" name="userPwd" id = "pwd"/>

     <br/>

     <input type="submit" value="用户登录"/>

    </form>

  </body>

</html>

 

登录跳转需经过struts配置文件

Struts.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <package name="loginpackage" extends="struts-default">

        <action name="login" class="com.softeee.action.LoginAction">

            <result name="success">success.jsp</result>

        </action>

    </package>

   

    <!-- 在主配置文件中可以包含分支文件 -->

    <include file="book.xml"></include>

   

    <include file="auth.xml"></include>

   

    <include file="commoper.xml"></include>

</struts>

Book.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <package name="bookpackage" extends="struts-default">

        <action name="search" class="com.softeee.action.BookOperAction" method="searchBook">

            <result name="success">booklist.jsp</result>

        </action>

       

        <action name="delete" class="com.softeee.action.BookOperAction" method="delBook">

            <result name="success">booklist.jsp</result>

        </action>

       

        <action name="update" class="com.softeee.action.BookOperAction" method="updateBook">

            <result name="success">bookUpdate.jsp</result>

        </action>

       

        <!-- 完成修改操作后返回到数据显示页面 -->

        <action name="upBook" class="com.softeee.action.BookOperAction" method="upBook">

            <result name="success">bookList.jsp</result>

        </action>

    </package>

   

</struts>

 

通过配置文件跳转到LoinAction.java中并找到默认的execute方法

LoginAction.java

package com.softeee.action;

 

import java.util.Map;

 

import org.apache.struts2.interceptor.SessionAware;

 

import com.opensymphony.xwork2.ActionSupport;

 

public class LoginAction extends ActionSupport implements SessionAware{

   

    Map session;

   

    //用户姓名

    private String userName;

    //用户密码

    private String userPwd;

   

    public LoginAction() {

        System.out.println("实例化了");

    }

   

    public String execute() throws Exception{

        System.out.println("登录的用户名是:"+userName+"   密码:"+userPwd);

        //session中存入用户信息

        session.put("uname",userName);

        return SUCCESS;

    }

   

    public String getUserName() {

        return userName;

    }

    public void setUserName(String userName) {

        this.userName = userName;

    }

    public String getUserPwd() {

        return userPwd;

    }

    public void setUserPwd(String userPwd) {

        this.userPwd = userPwd;

    }

 

    public void setSession(Map<String, Object> arg0) {

        this.session=arg0;

    }

 

}

 

 

搜索书

Search.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 ‘searchbook.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>

    查询书本信息

    <form action="search.do" name="searchform" id="searchform">

    书名:<input type="text" name="book.bookName" id="bookName">

         <input type="submit" value="查询">

    </form>

  </body>

</html>

 

BookOperAction.Java

Book.java

package com.ibm.dto;

 

public class Book {

    //书本编号

    private int bookId;

    //书本名称

    private String bookName;

   

    public int getBookId() {

        return bookId;

    }

    public void setBookId(int bookId) {

        this.bookId = bookId;

    }

    public String getBookName() {

        return bookName;

    }

    public void setBookName(String bookName) {

        this.bookName = bookName;

    }

   

   

 

}

 

 

package com.softeee.action;

 

import java.util.ArrayList;

import java.util.List;

 

import com.opensymphony.xwork2.ActionSupport;

import com.ibm.dto.Book;

import com.ibm.factory.HibernateSessionFactory;

 

public class BookOperAction extends ActionSupport {

   

    private Book book;

   

    private List<Book> bookList;

   

    public List<Book> getBookList() {

        return bookList;

    }

 

    public void setBookList(List<Book> bookList) {

        this.bookList = bookList;

    }

 

    public Book getBook() {

        return book;

    }

 

    public void setBook(Book book) {

        this.book = book;

    }

   

    public String searchBook(){

        System.out.println("查询的书名是:"+book.getBookName());

       

        HibernateSessionFactory.getSession();

       

        //以下部分模拟从数据库中查询书本并存放到list对象中进行传递

        bookList = new ArrayList<Book>();

        for (int i = 0; i < 5; i++) {

            Book book = new Book();

            book.setBookId(i);

            book.setBookName("孙子兵法"+i);

            bookList.add(book);

        }

       

        return "success";

    }

   

    public String delBook(){

        System.out.println("删除的书本的编号是:"+book.getBookId());

        //补全删除部分的代码

        return "success";

    }

   

    public String updateBook(){

        System.out.println("修改的书本的编号是:"+book.getBookId());

        //伪代码部分  真实应用中从数据库中查询与之对应的结果

        book=new Book();

        book.setBookId(1);

        book.setBookName("货币战争");

        return "success";

    }

   

    public String upBook(){

        //调用hibernatedao完善此部分

        System.out.println("修改部分");

        return "success";

    }

 

}

对比第一种取值方式(

<input type="text" name="userName" id="uname"/>

),下面这种方式是对bookname进行封装成book对象,即

<input type="text" name="book.bookName" id="bookName">

)在Action中需定义一个Book对象得到bookname

 

配置通配符

1.当struts2解析到adduser方法时,就会自动去找useradd方法

2.直接转向到adduser.jsp

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <package name="useroperpackage" extends="struts-default">

        <action name="*user" class="com.softeee.action.UserOperAction" method="{1}user">(1”代表第一个“*)

            <result name="success">{1}user.jsp</result>

        </action>

    </package>

   

</struts>


java 从零开始,学习笔记之基础入门<Struts2_实战演练(上)>(三十八)

原文:http://blog.csdn.net/rulon147/article/details/19190165

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!