jsp怎样获取struts2中action里的值

方式一、Action中定义成员变量,并生成get/set方法,在JSP页面可以取到这个变量值。
    例如:action类:
public class BookAction extends ActionSupport {
    private Book book;
    private List<Book> books;
    ...
    public String findBook(){
        books=bookService.findBook(book.getBookName());
        return SUCCESS;
    }
    public Book getBook() {
        return book;
    }
    public void setBook(Book book) {
        this.book = book;
    }
    public List<Book> getBooks() {
        return books;
    }
    public void setBooks(List<Book> books) {
        this.books = books;
    }
    ...
}
jsp页面:用OGNL表达式

<s:iterator id="b" value="books"> 
  <tr> 
        <td><s:property value='#b.getBookId()'/> </td>
        <td><s:property value='#b.getBookName()'/> </td>
  </tr>
</s:iterator>
    或EL表达式

<s:iterator value="books" var="b">
    <tr>
        <td>${b.bookId}</td>
    <td>${b.bookName}</td>
    </tr>
</s:iterator>

方式二、但是定义的成员变量多了,感觉整个Action的代码就很长了。这个时候可以使用一些Servlet API进行值的存取操作:HttpServletRequest、HttpSession和ServletContext。Struts2对这个三个对象用Map进行了封装,我们就可以使用Map对象来存取数据了。 

ActionContext actionContext = ActionContext.getContext(); 
          
//get HttpServletRequest 
Map<String,Object> request = (Map) actionContext.get("request"); 
request.put("a", "a is in request"); 
          
//get HttpSession 
//Map<String,Object> session = (Map) actionContext.get("session"); 
Map<String,Object> session = actionContext.getSession(); 
session.put("b", "b is in session"); 
          
//get ServletContext 
//Map<String,Object> application  = (Map) actionContext.get("application"); 
Map<String,Object> application  = actionContext.getApplication(); 
application.put("c", "c is in application");
jsp
${a} 
${b} 
${c} 
or               
${requestScope.a} 
${sessionScope.b} 
${applicationScope.c}
或者直接使用ActionContex类的put()方法:

ActionContext.getContext().put("greeting", "你好虫虫");
然后在结果页面中,从请求对象中取出greeting属性,如下:

${requestScope.greeting} 或者 <%=request.getAttribute("greeting")%>
--------------------- 
作者:qq_29606237 
来源:CSDN 
原文:https://blog.csdn.net/qq_29606237/article/details/79619845 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/weixin_39214481/article/details/88070359