`
zhangrong108
  • 浏览: 205870 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts2 页面action 传参与使用

阅读更多

1.action标签允许开发者在JSP页面中直接调用action,该标签有以下属性:

(1)executeResult:可选属性,为一个Boolean类型值,用来指定是否显示action的执行结果,默认值为false,即不显示。

(2)id:可选属性,用来引用该action的标识。

(3)name:必填属性,用来指定该action的实现类位置。

(4)namespace:可选属性,用来指定该标签调用的action所在的命名空间。

(5)ignoreContextParams:可选属性,用来指定该页面中的请求参数是否需要传入调用的action,默认值为false,即将本页面的请求参数传入被调用的action。

2.Struts2页面中需要显示动态数据时,需要将这些数据在页面文件外面获取,然后通过某种方式传到页面中,因为要避免在JSP页面中编写Java代码。比如需要从数据库中读取一系列数据,我们一般要通过action来获取这些数据,然后让页面得到action中获取的数据。

3.下面举一个简单的例子:

显示数据库中所有的书本信息

(1)书本的实体类为Book.java,反向表生成Hibernate实体类等过程这里不说。下面是Book.java的示例内容:

package entity;

public class Book implements java.io.Serializable {

private Integer bookId;
private String bookName;
private String bookAuthor;

public Integer getBookId() {
   return this.bookId;
}

public void setBookId(Integer bookId) {
   this.bookId = bookId;
}

public String getBookName() {
   return this.bookName;
}

public void setBookName(String bookName) {
   this.bookName = bookName;
}

public String getBookAuthor() {
   return this.bookAuthor;
}

public void setBookAuthor(String bookAuthor) {
   this.bookAuthor = bookAuthor;
}

}

(2)查询所有书本的方法,该方法所在的类为BookManage.java,其示例内容如下:

package dao;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import java.util.*;
import entity.*;

public class BookManage extends HibernateDaoSupport {

@SuppressWarnings("unchecked")
public List<Book> allBook(){
   String hql = "from Book as book ";
   try{
    List<Book> allBook = this.getHibernateTemplate().find(hql);
    return allBook; 
   }catch (RuntimeException re) {
    throw re;
   }
} 
}

(3)创建一个action用来获取所有书本信息,action为AllBookAction.java,其示例内容如下:

package com.xiaoqi.action;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

import java.util.*;
import dao.BookManage;
import entity.Book;

@SuppressWarnings("serial")
public class LeftAction extends ActionSupport{

private BookManage bookManage;

public void setBookManage(BookManage bookManage) {
   this.bookManage = bookManage;
}

public String execute(){

   List<Book> allBook = bookManage.allBook();
   HttpServletRequest request = ServletActionContext.getRequest();
   request.setAttribute("allBook", allBook);

   return null;
}
}

在上述代码中,将获取的所有书本信息保存到了名为"allBook"的request对象中,并返回null,因为返回值在现在这种情况下没有用。

(4)在struts.xml中,配置该action,内容如下:

<action name="allBookAction" class="AllBookAction">
</action>

(5)applicationContext.xml中配置该action,内容如下:

<bean id="bookManage" class="dao.BookManage" abstract="false" lazy-init="default" autowire="default" dependency-check="default">
        <property name="sessionFactory" >
               <ref local="sessionFactory"/>
       </property>
</bean>

<bean id="AllBookAction" class="com.xiaoqi.action.AllBookAction" >
       <property name="bookManage">
           <ref bean="bookManage" />
       </property> 
</bean>

(6)最后看下显示页面book.jsp,其内容如下:

<%@ page language="java" pageEncoding="gb2312"%>
<%@taglib uri="/struts-tags" prefix="s"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
    ......
</head>

<body>
<center>
   <s:action name="allBookAction" executeResult="false"></s:action>
   <div>
    <ul>
     <li>所有书本</li>
     <s:iterator value="#request.allBook">
      <li>
       书ID:<s:property value="bookId" />
      </li>
      <li>
       书名:<s:property value="bookName"/>
      </li>
      <li>
       作者:<s:property value="bookAuthor"/>
      </li>
     </s:iterator>
    </ul>
   </div>
</center>
</body>

 上述代码中,先用<s:action name="allBookAction" executeResult="false"></s:action>访问AllBookAction,记得executeResult值为false。然后在<s:iterator value="#request.allBook">中指明要循环哪个request对象所保存的List,这里要循环名为allBook的request对象所保存的List。通过<s:property value="bookName"/>直接输出该request对象中所保存的List中的书本对象Book的bookName属性值。

1
1
分享到:
评论

相关推荐

    struts2项目部署

    - `struts.xml`:Struts2的配置文件,定义了Action、结果类型、拦截器等。 3. **lib目录**:包含所有必要的库文件,包括Struts2框架的JAR包和其他依赖库。 4. **WebContent或html目录**:存放静态资源,如HTML...

    Migrating From Struts1 To Struts2

    2. **学习Struts2基础知识**:熟悉Struts2的基本概念、架构设计和核心组件,如Action、配置文件等。 3. **重构Action类**:将Struts1中的ActionForm类重构为Struts2的Action接口实现。需要注意的是,Struts2的Action...

    struts2重要知识点原理

    总结起来,Struts2框架通过FilterDispatcher作为核心控制器拦截和处理用户请求,使用Action和Interceptor实现业务逻辑和控制流,通过配置文件(struts.xml)管理Action的映射和结果,同时依赖ObjectFactory创建和管理...

    Struts2 技术内幕——深入解析Struts2架构设计与实现原理

    要深入学习和掌握Struts2,建议阅读官方文档,参与实际项目实践,也可以参考相关的技术书籍和教程,例如《Struts2技术内幕——深入解析Struts2架构设计与实现原理》等资源,来提升对Struts2框架的全面理解。

    Struts2+MySQL登录注册

    总结来说,“Struts2+MySQL登录注册”项目涉及到Struts2框架的使用,包括Action类的编写、结果的返回、视图层的构建以及数据库的操作。这个项目可以帮助开发者熟悉Struts2的MVC模式,了解Java web应用的开发流程,...

    struts2 论坛系统

    2. **配置文件**:struts.xml是Struts2的核心配置文件,用于定义Action的映射、结果类型、拦截器等。 3. **拦截器**:拦截器是Struts2的一个强大特性,可以实现事务管理、权限控制、日志记录等功能。 4. **结果类型*...

    Struts2 网上投票系统

    Struts2的核心组件包括Action、Interceptor(拦截器)、Result和Value Stack(值栈)等,它们协同工作,提供了一种灵活的请求处理机制。 2. **用户注册与登录**:Struts2提供了处理用户注册和登录的功能。通过...

    struts2与velocity集成 实例

    Struts2框架的核心在于其Action类,它负责处理用户请求并调用业务逻辑。Action类通过配置在struts.xml文件中的映射来与特定URL关联,从而控制应用程序的行为。Struts2还提供了拦截器(Interceptor)机制,用于在...

    Struts2 工作原理 Struts2框架 有图

    一旦Action执行完成,ActionInvocation将根据struts.xml配置文件中定义的结果类型(Result),决定下一步的动作,如跳转至特定的视图页面(通常是JSP或FreeMarker模板)。这个过程实现了模型与视图的分离,提高了...

    struts2源代码

    Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,它在Web应用开发中被广泛使用。Struts2的核心是Action类,它负责处理用户请求并调用业务逻辑。框架提供了丰富的拦截器(Interceptor),...

    struts2 web投票系统

    5. **配置文件**:Struts2的配置文件(struts.xml)定义了Action与方法的映射、结果类型以及拦截器栈。此外,可能还有数据库连接配置(如db.properties)和其他应用配置。 6. **数据库设计**:投票系统通常需要一个...

    Struts2-网上投票系统

    4. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认表达式语言,用于在Action和视图之间传递数据。在JSP页面中,我们可以直接使用OGNL表达式来获取Action中的属性值并显示。 5. **用户注册...

    struts2的日期回显

    如果验证失败,比如日期格式不正确,Struts2会将当前的Action实例(包含了用户的原始输入)返回给视图,这样在页面渲染时,之前的日期值就能被回显。 为了实现日期格式化,我们可以自定义一个拦截器,或者使用...

    轻松入门之struts2

    Struts2作为一个Web应用框架,在Java开发者中已经不是一个...此外,教程鼓励更多的开发者参与进来,共同完善教程内容,通过建立QQ群、邮件或博客等途径交流,从而让更多的初学者能够快速入门并掌握Struts2框架的使用。

    Struts2电子拍卖系统含数据库

    3. 配置文件:Struts2的配置文件(struts.xml),定义Action、结果页面和拦截器。 4. 数据库脚本:SQL文件,用于创建和初始化数据库表。 5. CSS和JavaScript文件:用于页面样式和交互效果。 6. 图片和其他静态资源:...

    struts2简单教程

    5. **OGNL(Object-Graph Navigation Language)**:Struts2默认使用OGNL作为表达式语言,用于数据绑定和动作调用。开发者可以通过OGNL在Action和视图之间传递数据,或者在Action中调用方法。 6. **Struts2的异常处理...

    Struts2_内核中文文档.pdf

    在Struts1中,核心控制器是`ActionServlet`,而Struts2则采用了过滤器(Filter)的设计模式来实现控制器功能。`FilterDispatcher`作为一个过滤器,其主要职责是接收用户的HTTP请求并进行相应的处理。 **核心控制器...

    Struts2的总结和Strut2集成Spring

    在Struts2中,可以通过注入的方式直接在Action中使用`HttpServletRequest`, `HttpServletResponse`和`HttpSession`对象,无需手动从Servlet API中获取。这简化了数据的读取和响应的控制。 #### Action的返回值 ...

    struts2+tomcat+mysql实现web聊天室

    在本文中,我们将深入探讨如何使用Struts2、Tomcat和MySQL来实现一个Web聊天室。这个项目的主要功能包括用户登录注册、错误检测、主题创建与显示、在线人数统计以及实时聊天。 首先,Struts2是一个基于MVC(模型-...

Global site tag (gtag.js) - Google Analytics