一、基本概念
action标签允许开发者在JSP页面中直接调用action,该标签有以下属性:
1 executeResult
可选属性,为一个Boolean类型值,用来指定是否显示action的执行结果,默认值为false,即不显示。2 id
可选属性,用来引用该action的标识。3 name
必填属性,用来指定该action的实现类位置。4 namespace
可选属性,用来指定该标签调用的action所在的命名空间。5 ignoreContextParams
可选属性,用来指定该页面中的请求参数是否需要传入调用的action,默认值为false,即将本页面的请求参数传入被调用的action。 二、示例main.jsp页面左侧栏显示数据库中所有的书本信息
1 书本的实体类为Book.java
public class Book implements java.io.Serializable { private Integer bookId;private String bookName;private String bookAuthor;}2 查询所有书本的方法,该方法所在的类为BookManage.java
public class BookManage extends HibernateDaoSupport { 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用来获取所有书本信息
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 "success";}}4 struts.xml中配置该action
<package name="book" namespace="/book" extends="dang-default"><action name="allBookAction" class="AllBookAction"> <result name="success">books.jsp</result></action></package>5 book.jsp
<body> <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></body>6 main.jsp中左侧菜单栏列出书籍所有数据
<div id="left"> <s:action name="allBookAction" namespace="/book" executeResult="true"></s:action></div> 三、总结该标签是每一个模块很清晰,并增加了模块的可复用性。
原帖地址: