Struts2:通过action标签向页面传值
2012-05-08 17:08
531 查看
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属性值。 |
相关文章推荐
- Struts2:通过action标签向页面传值
- Struts2:通过action标签向页面传值
- Struts2:通过action标签向页面传值
- Struts2常用标签的使用以及Action传值
- Struts2 Ajax---Action传值到JSP页面 Json格式
- 在struts2中从jsp页面传值到action中
- Struts2中在Action里面向前端页面传值的方法总结
- Struts2中的get、set方法作用:Action与页面传值
- Struts2中在Action里面向前端页面传值的方法总结
- struts2中关于jsp页面向action传值出现乱码问题
- jsp页面,使用Struts2标签,传递和获取Action类里的参数,注意事项。<s:a action><s:iterator><s:param>ognl表达式 在编写SSH2项目的时候,除
- struts2前台页面传值到action的三种方式
- struts2中jsp页面传值到action方式总结
- 在struts2中从jsp页面传值到action中
- 使用struts2标签<s:action无法显示引用页面问题
- struts2中jsp页面传值到action方式总结
- 在struts2中从jsp页面传值到action中
- 使用struts2的<s:param>等标签向action传值出现中文乱码的解决方法
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- 使用struts2标签<s:action无法显示引用页面问题