JSP页面使用Struts2.x 表达式获取Map中存储的对象

作者 做棵大树 日期 2018-05-02
JSP页面使用Struts2.x 表达式获取Map中存储的对象

首先先贴出来 java 文件代码,和 jsp 页面代码,用于对比参照

BookAction.java代码

    //搜索图书功能
public String searchBook() throws Exception{
    Map<String, Book> keyBooks = new HashMap<String, Book>();
            //创建Map对象,用于存储书籍的对象
    for (Book a : Book.bookList) {         
                    //对Book类中的ArrayList进行便利,然后获取符合条件的对象
        if (a.getBookName().toLowerCase().contains(keyword.toLowerCase())) {
            keyBooks.put(a.getBookNo(), a); 
                           //添加到Map中
               application.setAttribute("keyBooks", keyBooks); 
                           //在将其添加到application中,用于前台的获取。

        }
    }
    if (!keyBooks.isEmpty()) {
        return SUCCESS;
    } else {
        return ERROR;
    }

}

index.jsp

<s:iterator value=”#application.keyBooks” status=”st”> <tr <s:if test=”#st.odd”> style=”background-color:#BBFFFF”</s:if> <s:else>style=”background-color:#FFEBCD”</s:else>> </s:iterator>
书籍编号 书籍名称 书籍作者 书籍价位
<s:property value=”value.bookNo” /> <s:property value=”value.bookName” /> <s:property value=”value.bookAuthor” /> <s:property value=”value.bookPrice” />

在Jsp页面中使用的标签中,value属性中为 value.*** 因为是事先获取到 Map 中的 value 属性,即获取到了类型为 BOOK 类型的值,然后通过“ . ”运算,获取到对象相关的属性。